这是我的程序的片段代码,它将模拟太阳系。根据用户将在“amountField”中写入的内容,行星的“数量”将发生变化,ComboBox的“listOfPlanet”也将发生变化。这是我的问题。我发现了如何“调整大小”Combobox,但我不知道如何使“X”取决于“数字”。如你所见,我必须手动编写12个案例。
amountField = new JTextField(6);
ActionListener amountListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String amountData = amountField.getText();
Number = Integer.parseInt(amountData);
listOfPlanet.removeAllItems();
for(int i = 0; i<Number; i++) {
listOfPlanet.addItem("Planeta" + i);
}
b = new Ball(leftMainPanel);
}
};
amountField.addActionListener(amountListener);
rightUpPanel.add(amountField);
listOfPlanet = new JComboBox();
for(int i = 0; i<Number; i++) {
listOfPlanet.addItem("Planeta" + i);
}
ActionListener ComboListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
int temp;
temp = listOfPlanet.getSelectedIndex();
switch(temp){
case 0:
iii=0;
break;
case 1:
iii=1;
break;
case 2:
iii=2;
break;
case 3:
iii=3;
break;
case 4:
iii=4;
break;
case 5:
iii=5;
break;
case 6:
iii=6;
break;
case 7:
iii=7;
break;
case 8:
iii=8;
break;
case 9:
iii=9;
break;
case 10:
iii=10;
break;
case 11:
iii=11;
break;
case 12:
iii=12;
break;
}
}
};
listOfPlanet.addActionListener(ComboListener);
有没有办法让它像这样工作? :
for(int i=0; i<Number; i++) {
case i:
iii=i;
break;
}
答案 0 :(得分:3)
iii = listOfPlanet.getSelectedIndex();
这不起作用吗?你应该得到iii =从下拉框中选择的行星的索引。