java JComboBox问题

java JComboBox问题,java,Java,我试图创建两个Jcombox,其中第二个Jcombox应该根据第一个Jcombox中的更改来更改其值。 我试过了,但没有成功,非常感谢您的帮助。谢谢 这就是我迄今为止所尝试的: public class SharedDataBetweenComboBoxSample { static private String selectedString(ItemSelectable is) { Object selected[] = is.getSelectedObjects()

我试图创建两个Jcombox,其中第二个Jcombox应该根据第一个Jcombox中的更改来更改其值。 我试过了,但没有成功,非常感谢您的帮助。谢谢

这就是我迄今为止所尝试的:

public class SharedDataBetweenComboBoxSample {

    static private String selectedString(ItemSelectable is) {
        Object selected[] = is.getSelectedObjects();
        return ((selected.length == 0) ? "null" : (String)selected[0]);
    }

    public static void main(String args[]) {
        final String labels[] = { "A", "B", "C" };
        final String labelsA[] = { "A", "AA", "AAA" };
        final String labelsB[] = { "B", "BB", "BBB" };
        final String labelsC[] = { "C", "CC", "CCC" };

        final JFrame frame = new JFrame("Shared Data");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        JComboBox comboBox1 = new JComboBox();
        comboBox1.addItem(labels);
        comboBox1.setSelectedItem(null);

        final JComboBox comboBox2 = new JComboBox();
        // comboBox2.setEditable(true);
        panel.add(comboBox1);
        panel.add(comboBox2);
        frame.add(panel,BorderLayout.NORTH);

        ItemListener itemListener = new ItemListener() {
            public void itemStateChanged(ItemEvent itemEvent) {
                int state = itemEvent.getStateChange();
                System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected");
                System.out.println("Item: " + itemEvent.getItem());
                ItemSelectable is = itemEvent.getItemSelectable();
                System.out.println(", Selected: " + selectedString(is));
                if (selectedString(is) == "B") {
                    comboBox2.addItem(labelsB);
                    // frame.add(comboBox1, BorderLayout.CENTER);
                } else if (selectedString(is) == "A") {
                    comboBox2.addItem(labelsA);
                    // frame.add(comboBox1, BorderLayout.CENTER);
                } else if (selectedString(is) == "C") {
                    comboBox2.addItem(labelsC);
                    // frame.add(comboBox1, BorderLayout.CENTER);
                } else {
                    comboBox2.setSelectedItem(null);
                    // frame.add(comboBox1, BorderLayout.CENTER);
                }
            }

        };
        comboBox1.addItemListener(itemListener);

        frame.setSize(300,200);
        frame.setVisible(true);
    }
}

我不太确定你的问题是什么,因为你没有说。也许问题是

comboBox2.addItem(labelsB);
这是在列表中添加一个数组作为单个项,假设它是正确的,这是完全可以接受的,但是我猜您希望遍历数组并将每个数组作为单独的项添加。您可能希望在取消选择时删除项目

我假设您正在尝试从第一个列表上的多个选项(基于selectedString操作)中进行选择,如果不是,您的代码是否已过时?如果是,您不需要一个
If/else
构造,只需要多个
If
s


另外,不要使用
(selectedString(is)=“A”)
,你可能会很幸运,但你应该使用“.A”.equals(selectedString(is))

我在exampledepot.com和java2s.com上尝试了一些示例,但我无法根据我的需要使其工作。你为什么不先编辑你的帖子并发布正确格式的代码呢。您希望我们如何读取随机格式化的代码。对不起,我尝试过让它可读。
comboBox2.addItem(labelsB);