我正在尝试将一个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?
答案 0 :(得分:2)
我试图将一个actionListener添加到JList,
你不能,它没有ActionListener
支持
因此,只要用户单击JList中的值,它就会打印出值。
使用ListSelectionListener
代替
请查看How to Use Lists和How to Write a List Selection Listener了解详情