JList不显示项目

时间:2015-03-17 13:08:54

标签: java swing jlist

我在显示JList的项目时遇到了一些问题。

DefaultListModel<String> model = new DefaultListModel<String>();
model.addElement("one");
model.addElement("two");
model.addElement("three");

list = new JList<String>(model);
list.setCellRenderer(new DefaultListCellRenderer());
list.setVisible(true);

我也尝试过没有设置ListCellRenderer,但仍然没有运气。

你能告诉我我做错了吗?

2 个答案:

答案 0 :(得分:1)

感谢您的赞美和评论。问题是没有显示列表项。

将来我会添加一个最小的可编辑程序。

我的问题是由于尝试在构造函数中向JPanel添加JDialog而引起的,但此时JPanelnull因为它已在createUIComponents方法。

初学者请原谅。

答案 1 :(得分:-1)

这对我有用:

public class JListTest implements Runnable {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new JListTest());
    }

    @Override
    public void run() {
        JFrame frame = new JFrame(getClass().getSimpleName());
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(640, 480);
        frame.setLayout(new BorderLayout(4, 4));
        frame.add(getComponent(), BorderLayout.CENTER);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    Component getComponent() {
        DefaultListModel<String> model = new DefaultListModel<>();
        model.addElement("one");
        model.addElement("two");
        model.addElement("three");

        JList<String> list = new JList<>(model);
        list.setCellRenderer(new DefaultListCellRenderer());
        list.setVisible(true);
        return list;
    }
}