ListSelectionEvent
なんだこれ、動きがさっぱり読めないぞ。
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frm = new JFrame();
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setLayout(new FlowLayout());
Container c = frm.getContentPane();
final DefaultListModel model = new DefaultListModel();
final JList list = new JList(model);
list.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
System.out.println(e);
}
});
c.add(list);
list.setPreferredSize(new Dimension(200, 200));
JButton btn1 = new JButton("Add");
c.add(btn1);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
model.addElement("Hello");
}
});
JButton btn2 = new JButton("Deselect");
c.add(btn2);
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
list.clearSelection();
}
});
frm.pack();
frm.setVisible(true);
}
});
Addボタンを5回ほど押して、要素を5つ追加。1個目をクリック。
firstIndex= 0 lastIndex= 0
2個目をクリック。
firstIndex= 0 lastIndex= 1
ここで、既に良く分からない。firstIndex= 1 lastIndex= 1じゃないんだろうか?
もう一度1個目をクリック。
firstIndex= 0 lastIndex= 1
なんじゃこりゃ。バグ?
あ、そうか、1つ前の状態が格納されているんだよ。きっとつまりfirstIndex= 0 lastIndex= 0は、何も選択されていない状態なわけだ。
1個目をクリックしてから、deselectボタンで選択解除。
firstIndex= 0 lastIndex= 0
違った。やっぱり、さっぱり分からん。





