好的,这就是问题所在。我有一个JList,用户应该添加一些元素,然后在JList上显示元素的名称。我在所有的网页上搜索了在JList上添加滚动但没有这些工作。有人能帮我吗? 这是JList的代码,在方法' initialize()':
中 list = new JList();
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
if (arg0.getClickCount()==2) {
textFieldRagioneSociale.setText(ragionesociale.get(list.getSelectedIndex()));
textFieldNomeAzienda.setText(nomeazienda.get(list.getSelectedIndex()));
textFieldIndirizzo.setText(indirizzo.get(list.getSelectedIndex()));
textFieldCAP.setText(CAP.get(list.getSelectedIndex()));
textFieldLocalita.setText(localita.get(list.getSelectedIndex()));
textFieldProvincia.setText(provincia.get(list.getSelectedIndex()));
textFieldPartitaIVA.setText(partitaiva.get(list.getSelectedIndex()));
}
}
});
frmCedamClienti.getContentPane().setLayout(null);
list.setBounds(10, 10, 155, 255);
frmCedamClienti.getContentPane().add(list);
答案 0 :(得分:2)
您将JList放在JScrollPane中。
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(list);
...
答案 1 :(得分:0)
要使其有效,您应该将JList<>()
添加到JScrollPane()
。
简单的方法如下:
JList list = new JList(new DefaultListModel<>());
将您的列表放在JScrollPane()
旁边:
JScrollPane scrollPane = new JScrollPane(list);
最后,将您的JScrollPane()
添加到JFrame
的contentPane,只需:
contentPane.add(scrollPane);
然后,向JList<>()
添加项目将类似于:
for (int i = 0; i < 30; i++) {
((DefaultListModel) list.getModel()).addElement(String.valueOf(i));
}
在这里您可以找到完整的代码示例:
public TestFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 263, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JList list = new JList(new DefaultListModel<>());
JScrollPane scrollPane = new JScrollPane(list);
scrollPane.setBounds(10, 11, 227, 239);
contentPane.add(scrollPane);
for (int i = 0; i < 30; i++) {
((DefaultListModel) list.getModel()).addElement(String.valueOf(i));
}
}