Java 一个JPanel中有多个JComboBox
我有一个带三个JComboBox的JPanel。以下是我编写的代码:Java 一个JPanel中有多个JComboBox,java,swing,jpanel,jcombobox,layout-manager,Java,Swing,Jpanel,Jcombobox,Layout Manager,我有一个带三个JComboBox的JPanel。以下是我编写的代码: public class Main { private static String pat_order; private static String PS_selection; private static String ovlp_selection; public static void main(String args[]) throws FileNotFoundException, IOException {
public class Main {
private static String pat_order;
private static String PS_selection;
private static String ovlp_selection;
public static void main(String args[]) throws FileNotFoundException, IOException {
Date start_time = new Date();
try {
GridBagConstraints gbc = new GridBagConstraints();
final JComboBox jc = new JComboBox();
jc.addItem("ARR");
jc.addItem("SRR");
final JComboBox jc1 = new JComboBox();
jc1.addItem("RR");
jc1.addItem("IQC");
final JComboBox jc2 = new JComboBox();
jc2.addItem("YES");
jc2.addItem("NO");
JPanel myPanel = new JPanel(new GridBagLayout());
myPanel.add(jc, gbc);
myPanel.add(jc1, gbc);
myPanel.add(jc2, gbc);
jc.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
String order = (String) jc.getSelectedItem();
pat_order = order;
}
});
jc1.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
String PS_method = (String) jc1.getSelectedItem();
PS_selection = PS_method;
}
});
jc2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
String ovlp_user = (String) jc2.getSelectedItem();
ovlp_selection = ovlp_user;
}
});
if (pat_order == "ARR") {
Arrays.sort(patterns_array, new ColumnComparator(0));
} else if (pat_order == "SRR") {
Arrays.sort(patterns_array, new ColumnComparator(1));
}
if (PS_selection == "RR") {
System.out.println("RR");
} else if (PS_selection == "IQC") {
System.out.println("IQC");
}
if (ovlp_selection == "YES") {
Overlap a = new Overlap(Xdisc, final_patterns, k, Yresid, Xresid, projectname, pat_order, PS_selection);
}
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
} finally {
}
}
}
问题是第一个JComboBox工作正常,但第二个和第三个却什么也没做。如果您能帮我解决这个问题,那就太好了。您似乎在运行UI,就像它是一个控制台程序一样。UI不是这样工作的,它们响应事件。这些事件可能在任何时间以任何顺序发生 对话框是控制执行流程的好方法。它们将阻止代码,直到对话框关闭,从而允许您确定结果并采取适当的操作 查看更多详细信息 当你在那里的时候,你可能还想看一看,这将解释更多你需要理解的概念
就像UI需要某种窗口才能显示在屏幕上一样尝试添加
ActionListener
而不是itemsListener,我看不出您在哪里定义gbc
?您是对的。为了避免混淆,我删除了一些代码行?