Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用DefaultListModel和JList显示列表_Java_Swing_Jlist_Defaultlistmodel - Fatal编程技术网

Java 使用DefaultListModel和JList显示列表

Java 使用DefaultListModel和JList显示列表,java,swing,jlist,defaultlistmodel,Java,Swing,Jlist,Defaultlistmodel,我试图使用DefaultListModel和JList显示项目列表,但我的窗口为空。错误是什么 见代码: public class ViewInventoryInterface extends JFrame { private Inventory theInventory; // reference to back end private InventoryUPCIterator iter; private DefaultListModel dlm; pr

我试图使用DefaultListModel和JList显示项目列表,但我的窗口为空。错误是什么

见代码:

    public class ViewInventoryInterface extends JFrame {
    private Inventory theInventory; // reference to back end
    private InventoryUPCIterator iter;
    private DefaultListModel dlm;
    private JList list;
    private JScrollPane scroll;

    public ViewInventoryInterface(Inventory theInventory) {
        this.theInventory = theInventory;
        iter = theInventory.inventoryUPCIterator(); //returns an iterator for the inventory
        dlm = new DefaultListModel();
        while (iter.hasNext()) {
            dlm.addElement(iter.next().toString());
        }
        list = new JList(dlm);
        scroll = new JScrollPane(list);
        setTitle("Inventory");
        setSize(400, 400);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);    
    }
} 

第一个问题可能是您没有在框架中添加任何内容。使用
getContentPane()。添加(…)
等将滚动窗格添加到框架中


根据布局管理器的不同,您可能需要具有不同的附加参数,但使用默认的
BorderLayout
,仅添加就可以了。

第一个问题可能是您没有向框架添加任何内容。使用
getContentPane()。添加(…)
等将滚动窗格添加到框架中


根据布局管理器的不同,您可能需要有不同的附加参数,但使用默认的
BorderLayout
仅添加即可。

谢谢,现在它显示的是键,而不是键引用的项目。我怎样才能纠正这个问题?从Java5和更高版本调用ContentPane、simple add(JComponent)不是必需的+1@trs看起来您只是在向
DefaultListModel
添加键。您必须创建不同的字符串表示形式或创建自己的列表模型(您可以子类
DefaultListModel
),添加键和项,并提供自己的
ListCellRenderer
实现,以便显示除键以外的任何内容。谢谢,现在它显示的是键,而不是键引用的项。我怎样才能纠正这个问题?从Java5和更高版本调用ContentPane、simple add(JComponent)不是必需的+1@trs看起来您只是在向
DefaultListModel
添加键。您必须创建不同的字符串表示或创建自己的列表模型(您可以子类化
DefaultListModel
),添加键和项,并提供自己的
ListCellRenderer
实现,以便显示除键以外的任何内容。