如何在JList上添加滚动? [JAVA]

时间:2017-12-15 16:37:59

标签: java swing scroll jscrollpane jlist

好的,这就是问题所在。我有一个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);

2 个答案:

答案 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));
    }
}