标签: jcombobox

根据另一个JComboBox的选择更改JComboBox的元素

我有一个小应用程序,通过JPA从MySQL DB生成统计图表.要选择要在统计信息中包含哪些数据库组件,我已安装了2个JComboBox.第一个JComboBox使用Category1的元素填充,第二个JComboBox使用Category2中的元素填充,Category2是Category1的子类别.我想要做的是只使用链接到JComboBox1中的选择的Category2元素填充JComboBox2.

示例:Category1是汽车品牌,Category2是型号; 我希望JComboBox2只显示所选品牌的型号,现在它显示每个品牌的每个可用型号.

java swing jcombobox

2
推荐指数
1
解决办法
2656
查看次数

需要在JTable中动态添加JCheckBox

我有两个JTable.一个记录中有一定数量的记录JTable.

JTable加载第一个后,我想加载JCheckbox在第二个表中创建的相同数量的数字.

我有这个场景... vl传递方法中的两个表addCheckBox.

private void addCheckBox(JTable procTableSrc, JTable procTableCk){

    CheckBoxRenderer checkBoxRenderer = new CheckBoxRenderer();
    EachRowRenderer rowRenderer = new EachRowRenderer();
    int rows = procTableSrc.getRowCount();

    DefaultTableModel dm = (DefaultTableModel)procTableCk.getModel();

    Object [] data = new Object[][]{{new Boolean(false)},{new Boolean(false)}}; 

    for(int i=1; i <=rows; i++){
        rowRenderer.add(i, checkBoxRenderer);           
        //model.addRow(new Object []{new Boolean(false)});
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮我一个代码来实现这一目标.

java swing jtable renderer jcombobox

2
推荐指数
1
解决办法
2078
查看次数

在Java 7上使用JCombobox键入安全性

我无法在java7中删除一个新的类型安全警告.

我定义了以下JCombobox对象

private JComboBox<Integer> combobox_current_year;
Run Code Online (Sandbox Code Playgroud)

和构造函数

combobox_current_year = new JComboBox(options.getList_years().toArray());
Run Code Online (Sandbox Code Playgroud)

Java 7现在给我以下警告:

类型安全:JComboBox类型的表达式需要未经检查的转换以符合JComboBox

将代码更改为

combobox_current_year = new JComboBox<Integer>((Integer[]) options.getList_years().toArray());
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

线程"AWT-EventQueue-0"中的异常java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Integer; 在jamm.gui.FinanzmanagerGui.mainWindow(FinanzmanagerGui.java:123)在jamm.StartJamm $ 1.run(StartJamm.java:43)在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)在java.awt中.EventQueue.dispatchEventImpl(EventQueue.java:705)在java.awt.EventQueue.access $ 000(EventQueue.java:101)在java.awt.EventQueue中$ 3.run(EventQueue.java:666)在java.awt.EventQueue中$ 3 .RUN(EventQueue.java:664)在java.security.AccessController.doPrivileged(本机方法)在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)在java.awt.EventQueue.dispatchEvent(EventQueue.java: 675)java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)at java. awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

java swing jcombobox java-7

2
推荐指数
2
解决办法
3661
查看次数

如何制作两个文本字段和一个JCombobox就像登录一样具有条件

我有两个文本字段和一个JComboboxes问题是我希望程序检查文本字段中是否输入了"admins"并在JCombobox中选择了管理员,如果这样,程序将向用户显示一个消息框.

java user-interface swing jtextfield jcombobox

2
推荐指数
1
解决办法
205
查看次数

Java Swing Combobox removeAllItems调用ItemStateChanged也?

我的代码实际上非常简单.我看到了一个简单而类似的代码是从这篇文章.

起初,我有1个组合框.我有一个名为itemStateChanged()的监听器.我加入这个监听器的目的是:" 当用户从其保管箱中点击(选择)一个项目时执行一些代码 ".

Cmb_ItemCategory = new javax.swing.JComboBox();

Cmb_ItemCategory.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Loading..." }));

Cmb_ItemCategory.addItemListener(new java.awt.event.ItemListener() {
    public void itemStateChanged(java.awt.event.ItemEvent evt) {
        Cmb_ItemCategoryItemStateChanged(evt);
    }
});

private void Cmb_ItemCategoryItemStateChanged(java.awt.event.ItemEvent evt) {

        if(evt.getStateChange() == java.awt.event.ItemEvent.SELECTED){
        System.err.println("Sombody click or change my model content");
        }

    }
Run Code Online (Sandbox Code Playgroud)

在代码后面,我获取一些数据,然后调用removeAllItems()方法.然后我将新模型(从新数据)设置到其中.

-- at another line of code ---
Cmb_ItemCategory.removeAllItems();
Cmb_ItemCategory.setModel(newModel);
Run Code Online (Sandbox Code Playgroud)

我juz意识到当我执行removeAllItem()方法时调用了我的itemStateChanged().叫了一次.

那么,如何使它只调用一次用户单击(选择)而不是当removeAllItems()调用时?

它类似于这篇文章.但它不是removeItems案例.CMIIW.

java methods swing jcombobox comboboxmodel

2
推荐指数
1
解决办法
7773
查看次数

动态组合框问题

嗨,我正在使用一个表,其中两列即仪器和方法.单击一个按钮,我将在每个单元格中添加一行作为编辑器的组合框.此外,那些组合框将具有actionlistener.就像我选择乐器时一样,应该改变方法组合框列表.我只使用两个组合框,每次添加行时我都会实例化它.我的问题是每当我添加一个新行时,现有的行组合都会重新加载最新的值.这意味着,即使我以不同方式实例化它,组合框也是唯一的.动态创建组合框的方法是什么,它应该具有自己的值.在下面发布我的代码供您参考.

addItem.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            comboInstrument = new CeNComboBox();
            comboMethod = new CeNComboBox();
            TableColumn instrumentColumn = table.getColumn("Instrument Used");
            TableColumn methodColumn = table.getColumn("Method Title");
            comboInstrument.removeAllItems();
            listInstruments = analyticalUtil.getInstruments(listAnalysisSummaryPrefs);
            iterateInstruments = listInstruments.iterator();
            while(iterateInstruments.hasNext()){
                comboInstrument.addItem(iterateInstruments.next());
            }
            dtm.addRow(new Object[]{" "," "});
            comboInstrument.setEditable(true);
            instrumentColumn.setCellEditor(new MyComboBoxEditor(comboInstrument));
            instrumentColumn.setCellRenderer(new MyComboBoxRenderer());
            comboMethod.setEditable(true);
            methodColumn.setCellEditor(new MyComboBoxEditor(comboMethod));
            methodColumn.setCellRenderer(new MyComboBoxRenderer());

            comboInstrument.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent argEvent){
                    comboInstrumentActionPerformed();
                }
            });
            comboMethod.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent argEvent){
                    comboMethodActionPerformed();
                }
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

MyComboBoxEditor.java

public class MyComboBoxEditor extends DefaultCellEditor {



    public MyComboBoxEditor(JComboBox …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jcombobox

2
推荐指数
1
解决办法
1908
查看次数

DocumentListener在JTextField.setText()中出现问题

请查看以下3组课程.请注意,仅显示相关代码,而其余大部分代码将被删除.

CommonGUI.java

package normal;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.swing.*;
import javax.swing.text.AbstractDocument;

public class CommonGUI extends JPanel
{
    protected JLabel name, mobileNumber1, mobileNumber2, address, landNumber1, landNumber2,  nickName, email, category;
    protected JTextField nameTxt, mobileNumber1Txt, mobileNumber2Txt, landNumber1Txt, landNumber2Txt, nickNameTxt, emailTxt, categoryTxt;

    protected JTextArea addressTxt;
    protected JScrollPane scroll;    


    protected JComboBox categoryCombo;        


    public CommonGUI()
    {
        //Intializing the instance variables
        name = new JLabel("Name: ");
        mobileNumber1 = new JLabel("Mobile Number 1:");
        mobileNumber2 = new JLabel("Mobile Number 2: ");
        address = new …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jtextfield jcombobox

2
推荐指数
1
解决办法
1522
查看次数

从JComboBox获取价值

我有JComboBox2列,我有JButton.单击时JButton,我需要分别JComboBox从第一列和第二列中获取所选值的结果...

我怎么这样?

另外:如何设置JComboBox的标头?

代码:

 public class Combo extends JFrame implements ActionListener{
    private JComboBox combo = new JComboBox();
    private JButton button = new JButton();
    public Combo() {

        setLayout(new FlowLayout());
        combo.setRenderer(new render());

        add(combo);

        combo.addItem(new String[] {"1","bbb"});
        combo.addItem(new String[] {"2","ff"});
        combo.addItem(new String[] {"3","gg"});
        combo.addItem(new String[] {"4","ee"});

        add(button);
        button.addActionListener(this);
        pack();
    }


    public static void main(String[]args){
        new Combo().setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==button){
            System.out.println(combo.getSelectedItem());
        }
    }
}
class render extends JPanel implements ListCellRenderer{

    private …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton jcombobox listcellrenderer

2
推荐指数
1
解决办法
5万
查看次数

在jtable中为列的每一行添加不同的组合框

public class TablePanel extends JPanel implements ActionListener,Serializable
{
    JTable m_table;
    JComboBox combo,combo1;
    DefaultTableModel model=new DefaultTableModel();
    DefaultComboBoxModel model1=new DefaultComboBoxModel();
    DefaultComboBoxModel model2=new DefaultComboBoxModel();
        List<String> field;
    List<String> attrCode;
    TablePanel()
    {

            m_table=new JTable(model);
            m_table.setBackground(Color.WHITE);
            model.addColumn("col1");
            model.addColumn("col2");
            model.addColumn("col3");
            model.addColumn("col4");
            model.addColumn("col5");
            model.addColumn("col6");
            JScrollPane scrollpane=new JScrollPane(m_table);
            scrollpane.setBackground(Color.WHITE);
            Dimension d = m_table.getPreferredSize();
            scrollpane.setPreferredSize(
                new Dimension(d.width,m_table.getRowHeight()*15+1));
            add(scrollpane);

            }

                       attrCode = service.getAllAttributes(value);
               combo1=new JComboBox(model2);
               model1.addElement(attrCode.get(0));
               model1.addElement(attrCode.get(1));
            model1.addElement(attrCode.get(2));
            model1.addElement(attrCode.get(3));
            model1.addElement(attrCode.get(4));
            model1.addElement(attrCode.get(5));
            model1.addElement(attrCode.get(6));
            col=m_table.getColumnModel().getColumn(0);
            col.setCellEditor((new DefaultCellEditor(combo1)));
            combo2=new JComboBox(model3);
            model3.addElement(trans.get(0));
            model3.addElement(trans.get(1));
            model3.addElement(trans.get(2));
            model3.addElement(trans.get(3));
            model3.addElement(trans.get(4));
            col=m_table.getColumnModel().getColumn(2);

            col.setCellEditor((new DefaultCellEditor(combo2)));} }
Run Code Online (Sandbox Code Playgroud)

我有一张桌子,表格中有一些栏目.现在我想要做的两个列是组合框,当用户从column1组合框中选择一些值时,根据用户选择的值,应该填充组合框2.例如,如果用户从column1组合框中选择value1,则column2组合框将仅显示对应于value1的值.

swing jtable jcombobox

2
推荐指数
1
解决办法
3484
查看次数

使用自定义ComboBoxUI

我试图通过扩展BasicComboBoxUI类来改变JComboBox组件的外观.问题是当我使用扩展的MyComboBoxUI类时,组合框停止正常运行.

这个SSCCE正在证明我的问题.第一个组合框显示第二个组合框的选定项目,第一个组合框没有绘制箭头按钮,并且无法选择项目.

注意:我以这种方式更改JButton组件没有问题.

主要课程:

import javax.swing.JFrame;
import javax.swing.UIManager;

public class Main {

    public static void main(String[] args) {

        UIManager.put("ComboBoxUI", "MyComboBoxUI");

        javax.swing.SwingUtilities.invokeLater(new Runnable() {
             public void run() {
                JFrame frame = new JFrame();
                ContentPane contentPane = new ContentPane();
                frame.setContentPane(contentPane);
                frame.setSize(600, 400);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
             }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

ContenPane类:

import java.awt.FlowLayout;
import javax.swing.JComboBox;
import javax.swing.JPanel;

public class ContentPane extends JPanel {

    public ContentPane() {
        setLayout(new FlowLayout());
        JComboBox<String> firstComboBox = new JComboBox<>();
        firstComboBox.addItem("firstComboBox - 1. item");
        firstComboBox.addItem("firstComboBox - 2. item");
        firstComboBox.addItem("firstComboBox - 3. …
Run Code Online (Sandbox Code Playgroud)

java swing jcombobox

2
推荐指数
1
解决办法
635
查看次数