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

Java:comboBox,comboBox中每个选项的不同表,java,swing,jcombobox,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.swi

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

我想最好的方法是做一个“开关”,但我真的不知道在开关的测试区域放什么

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);



    }
}
谢谢,
Dragos

假设您使用的是
Java7
,您可以编写如下代码:

String s = (String)tables.getSelectedItem();
                switch (s) {
您可以使用方法获取当前选定的项目:

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

注意:为了在switch语句中使用它,您必须将其强制转换为
字符串。

如果您没有使用
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");
  }
在JavaSE7和更高版本中,可以在switch语句的表达式中使用String对象