import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class Test1{
JComboBox combo;
JTextField txt;
public static void main(String[] args) {
Test1 b = new Test1();
}
public Test1(){
String degrees[] = {"AAS1","AAS2","AAS1","AAS3"};
JFrame frame = new JFrame("Creating a JComboBox Component");
JPanel panel = new JPanel();
combo = new JComboBox(degrees);
combo.setEditable(true);
combo.setBackground(Color.gray);
combo.setForeground(Color.red);
txt = new JTextField(10);
txt.setText("1");
panel.add(combo);
panel.add(txt);
frame.add(panel);
combo.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent ie){
txt.setText(String.valueOf(combo.getSelectedIndex()+1));
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setVisible(true);
} }
上記のコードからわかるように。私は4つのアイテムを持つJComboBoxを持っています。同じアイテムがなければ、すべてOKです。
しかし、私の例( "AAS1"、 "AAS2"、 "AAS1"、 "AAS3")では、最初と3番目の項目は同じであり、この場合は問題があります。JTextFieldでインデックスを取得したいアイテムを選択すると、3番目のアイテムを選択すると、最初のアイテムのインデックスが取得されます。何か考えはありますか?