我想要我的组合框中的每个选项,我的应用程序上会显示不同的选项。窗口:不同的按钮,表格,文本字段等。
我认为最好的方法是进行“切换”,但我真的不知道该怎么放在开关的测试区域。
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);
}
}
谢谢, 德拉戈什
答案 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对象。