我的代码有问题。我有一个多维String数组[] [],想从中创建列表。因此,对于每个array []元素,我想要一个包含其值的新列表。例如,我有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
在每次循环中都创建一个模型,因此您每次都只会向现有模型中添加更多模型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句