如何以正确的方式向JList添加动作侦听器?

时间:2015-07-06 07:06:16

标签: java swing actionlistener jlist

我正在尝试将一个actionListener添加到JList中,因此每当用户单击JList中的值时,它只会打印该值。

这是代码

public class FontProgram {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        JFrame mainFrame = new JFrame("Fonts Frame");
        JPanel panel = new JPanel(new BorderLayout());

        GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
        String[] fontNames = e.getAvailableFontFamilyNames();




        JComboBox fontbox = new JComboBox(fontNames);

        JList fontList = new JList(fontNames);
        JButton button = new JButton("Submit");

        JScrollPane scrollPane = new JScrollPane();

        scrollPane.setViewportView(fontList);

        fontList.addListSelectionListener(new SharedListSelectionHandler());
        panel.add(fontbox, BorderLayout.NORTH);
        panel.add(scrollPane, BorderLayout.CENTER);
        panel.add(button, BorderLayout.SOUTH);

        mainFrame.add(panel);
        mainFrame.setVisible(true);
        mainFrame.setSize(250, 250);
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    }

}

这是代码的结果

enter image description here

那么如何将动作侦听器添加到JList?

1 个答案:

答案 0 :(得分:2)

  

我试图将一个actionListener添加到JList,

你不能,它没有ActionListener支持

  

因此,只要用户单击JList中的值,它就会打印出值。

使用ListSelectionListener代替

请查看How to Use ListsHow to Write a List Selection Listener了解详情