我想创建一个用户界面,用户可以在其中选择他想要的每个披萨的特征。 我希望abl使用所述用户输入的值。
所以这是我的代码:
JPanel panelComm2 = new JPanel();
String[] crust = Crust.names();
String[] size = Size.names();
String[] drink = Drink.names();
Box verticalBox = Box.createVerticalBox();
for(int i=0;i<nbPizza;i++){
Box horizontalBox = Box.createHorizontalBox();
JLabel crustJLabel = new JLabel("Crust Pizza "+ (i+1)+": ");
horizontalBox.add(crustJLabel);
JComboBox comboCrust = new JComboBox(crust);
horizontalBox.add(comboCrust);
JLabel sizeJLabel = new JLabel("Size Pizza "+ (i+1)+": ");
horizontalBox.add(sizeJLabel);
JComboBox comboSize = new JComboBox(size);
horizontalBox.add(comboSize);
verticalBox.add(horizontalBox);
}
for (int j=0;j<nbDrink;j++){
Box horizontalBox = Box.createHorizontalBox();
JLabel drinkJLabel = new JLabel("Drink "+ (j+1) +": ");
horizontalBox.add(drinkJLabel);
JComboBox comboChooseDrink = new JComboBox(drink);
horizontalBox.add(comboChooseDrink);
verticalBox.add(horizontalBox);
}
panelComm2.add(verticalBox);
int p = JOptionPane.showOptionDialog(null, panelComm2, "Select option",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, options2, options2[0]);
if (p == JOptionPane.YES_OPTION) {
// Here I want to store the value enter by the user in the comboBox
// Without a for, I would do this
//
// String crust1 = comboCrust().getSelectedItem().toString();
//
//But comboCrust don't exist anymore cause it exist only in the for
System.out.println("To do");
}
你可以看到我在一些for循环中生成我的接口,这些循环的大小取决于某个变量(由用户定义)
创建一个JComboBox用于选择&#39; Crust&#39;&#39;尺寸&#39;或者&#39;饮用&#39;。 (这三个都是枚举)
界面是在&#34; Box&#34;的帮助下组织的。水平和垂直。我把它放在我的主面板&#34; panelComm2&#34;也用于在最后制作JoptionPane。
这就是它的样子:
然而,通过我构建界面的方式,我无法获得用户选择的信息。
我正在寻找一种为界面的每个字段添加变量的方法,以便在用户点击“确定”时使用它们。
答案 0 :(得分:0)
我放弃了为每个字段创建变量的想法,并使用JcomboBox数组定义之前的&#39; for&#39;循环。
JComboBox[] arrayComboCrust = new JComboBox[nbPizza];
JComboBox[] arrayComboSize = new JComboBox[nbPizza];
JComboBox[] arrayComboDrink = new JComboBox[nbDrink];
然后在循环中我定义数组的值:
arrayComboCrust[i]=comboCrust;
我为&#39;设立了一个新的&#39;循环到我的JOptionPane来读取我想要的值
感谢MadProgrammer