如何从另一个类的JComboBox获取内容

时间:2019-08-29 13:20:18

标签: java android

我正在开发某些应用程序。在主页(注册页面)上,有一个组合框,几乎没有可供选择的选项。根据选择的内容,具体内容将出现在下一个窗口中。 问题是如何从该组合框中的其他类中获取Content。

我假设需要添加一些if控制指令,但是每次我添加一些东西都会返回错误。

有人可以帮忙看看代码的样子吗? 例如,如果将选择选项“ 1”,则将背景设置为黑色,如果将“ 2”将背景设置为粉红色,等等。

注册窗口:

public Main() throws Exception {

        registerWindowFrame = new JFrame("xxx");                                                    
        //registerWindowFrame.setSize(1440,2960);                                                                        
        registerWindowFrame.setSize(500, 750);
        registerWindowFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                                              
        registerWindowFrame.setLayout(null);
        registerWindowFrame.getContentPane().setBackground(Color.RED);

BloodList bloodList = new BloodList();
        bloodList.setSize(bloodList.getPreferredSize());
        bloodList.setLocation(10, 365);
        registerWindowFrame.add(bloodList);

comboxbox类:

public class BloodList extends JComboBox <String> {

    int i;

    public String[] bloodList =
            {
                    "1",
                    "2",
                    "3",

            };

    public BloodList() {
        for (i=0; i < bloodList.length; i++)
        {
            this.addItem(bloodList[i]);
        };
    }

}

注册窗口后的窗口:

public mainWindowBplus() {
        super();
        bloodBplusFrame = new JFrame("SETTINGS");
        bloodBplusFrame.setSize(500, 750);
        bloodBplusFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        bloodBplusFrame.setLayout(null);
        bloodBplusFrame.getContentPane().setBackground(Color.BLUE);
    bloodBplusFrame.setVisible(true);

1 个答案:

答案 0 :(得分:1)

您应该在action listener上添加一个jcombobox,以获取所选String的值,然后在其他类中使用该值,请尝试以下操作:

public class BloodList extends JComboBox <String> {
    private String s="";

    private String[] bloodList =
            {
                    "1",
                    "2",
                    "3",

            };

    public BloodList() {
        for (int i=0; i < bloodList.length; i++)
        {
            this.addItem(bloodList[i]);
        };
    }

    ActionListener cbActionListener = new ActionListener() {//add actionlistner to listen for change
            @Override
            public void actionPerformed(ActionEvent e) {

                s = (String) BloodList.this.getSelectedItem();//get the selected string
            }
    };

    this.addActionListener(cbActionListener);

    public String getS(){return s;}

}

现在,您可以使用String方法在另一个类中使用该getS()