【问题标题】:How do i add an action listener to a JList in a proper way?如何以正确的方式将动作侦听器添加到 JList?
【发布时间】:2015-09-23 05:33:13
【问题描述】:

我正在尝试将 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);


    }

}

这是代码的结果

那么如何向 JList 添加一个动作监听器呢?

【问题讨论】:

  • 添加 MouseListener?,我可以用 addActionListener 代替吗?
  • 没有。想必你试过用list.addActionListener(...),发现方法不存在

标签: java swing actionlistener jlist


【解决方案1】:

我正在尝试将 actionListener 添加到 JList,

你不能,它没有ActionListener 支持

所以每当用户点击 JList 中的一个值时,它只会打印该值。

改用ListSelectionListener

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

【讨论】:

    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 2021-08-02
    • 2014-01-29
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多