<< 2007/11/24 | Home | 2007/11/26 >>
PR: 転職    転職    合宿免許    漫画    シルバー    ブライダルエステ    墓地・霊園    葬式   

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

違った。やっぱり、さっぱり分からん。

ATI新ドライバ

速くなった気がしていたんだけど、いや確かにブラウザのレンダリングとかは速くなってるんだけど、Alt+Tabで切り替えた時に、すごく待たされる場合があるな。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8