Java:comboBox,comboBox中每个选项的不同表

时间:2013-03-31 09:04:36

标签: java swing jcombobox

我想要我的组合框中的每个选项,我的应用程序上会显示不同的选项。窗口:不同的按钮,表格,文本字段等。

我认为最好的方法是进行“切换”,但我真的不知道该怎么放在开关的测试区域。

package tema3;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Interface {

    public static void main(String[] args) {

        new Interface();
    }

    public Interface() {

        JFrame guiFrame = new JFrame();

        guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        guiFrame.setTitle("Tema3");
        guiFrame.setSize(1200, 600);

        guiFrame.setLocationRelativeTo(null); // seteaza centrat

        String[] tableOptions = { "OPDept", "Order", "OrderItems", "Product",
                "Warehouse", "Customer" };
        // pentru combo box

        final JPanel comboPanel = new JPanel();
        JLabel comboLbl = new JLabel("Tabele:");
        JComboBox tables = new JComboBox(tableOptions);

        comboPanel.add(comboLbl);
        comboPanel.add(tables);

        tables.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent event) {

                comboPanel.setVisible(comboPanel.isVisible());

                switch (???what to insert here???) {

                case "Order": {
                    System.out.println("11111");
                    break;
                }

                case "Product": {
                    System.out.println("2222");
                    break;
                }

                    default: {
                        System.out.print("sd");
                        break;
                    }
                }

            }
        });

        guiFrame.add(comboPanel, BorderLayout.NORTH);
        guiFrame.add(tables, BorderLayout.SOUTH);

        guiFrame.setVisible(true);



    }
}

谢谢, 德拉戈什

3 个答案:

答案 0 :(得分:1)

您可以使用方法getSelectedItem来获取当前所选的项目:

switch ((String)tables.getSelectedItem()) { ... }

注意:您必须将其强制转换为String才能在switch语句中使用它。

答案 1 :(得分:0)

假设您正在使用Java7您可以写如下:

String s = (String)tables.getSelectedItem();
                switch (s) {

答案 2 :(得分:0)

如果您未使用Java7 +,则无法切换而不是字符串

因此您可以将其转换为if(){}.. else{}

就像那样:

 String s = (String) tables.getSelectedItem();
 if (s.equals("Order")) {
     System.out.println("11111111");
  } else if (s.equals("Product")) {
      System.out.println("2222222");
  } else {
      System.out.print("sd");
  }

Oracle tutorial :           在Java SE 7及更高版本中,您可以在switch语句的表达式中使用String对象。