如何使用DefaultListModel创建具有不同值的多个jlist



我的代码有问题。我有一个多维字符串数组[][],并希望从中创建列表。对于每个数组[]元素,我想要一个包含它的值的新列表。举个例子,我有4个列表。列表1有3个值,列表2有1个值,列表3有4个值,列表4有2个值。当我只使用JList时,这工作得很好。数组的每个值都对应它的所有值:

    protected static JComponent getButtonCluster() {
    contentPanel.removeAll();
    contentPanel.setLayout(new GridLayout(0,2, 5, 5));
    contentPanel.setBorder(new EmptyBorder(10,0,0,0));
    for (int i=0; i < StringArray.length; i++) {
        listbox = new JList( StringArray[i] );
        contentPanel.add(listbox);
    }
    return contentPanel;
}

但是现在我必须从只有JLists更改为DefaultListModel,因为我想通过单击Values来更改Values。现在所有列表都包含数组的所有值。所以这4个盒子有10个元素。

        final DefaultListModel<String> model = new DefaultListModel<String>();          
        for (int i=0; i < StringArray.length; i++) {
        for (int j=0; j < StringArray[i].length; j++) {
            model.addElement(StringArray[i][j]);
            if((StringArray[i].length -1)== j) {
            listbox = new JList<String>(model);
            contentPanel.add(listbox);
            listbox.addMouseListener(new MouseAdapter() {
                     public void mouseClicked(MouseEvent e) {
                         if (e.getClickCount() == 2) {
                             //Value Change part.......
                          }
                     }
            });
            }
        }

我怎么能解决我的问题,使每个列表有它自己的值?

以前,您在每次通过循环时都创建了一个new JList。在您的新代码中,您没有创建每个通过循环的new模型,因此您只是每次向现有模型添加更多。

相关内容

  • 没有找到相关文章

最新更新