我有两个类,一个视图,我的所有控件都放在我的gui上,另一个放在我的代码中。
但是如何向JList
添加值?我只能从GUI类(下面提到的第一类)本身做到这一点,但那不是一个合适的位置。
private JList userList;
userList = new JList(ce.data); // where data is the datalist model in my 2nd class
private String[] testList;
DefaultListModel data = new DefaultListModel();
public void AddValuesList()
{
testList = new String[] {"user1", "user2"};
for (int i=0; i < testList.length; i++)
{
this.data.add(i, testLijst[i]);
}
}
答案 0 :(得分:0)
真正做到这一点的唯一方法就是如何布局。在第二个类中为列表模型添加一个getter(例如DefaultListModel
),使用该模型创建JList
(或在创建JList
后设置它),然后将值添加到列表模型。从您的示例看起来,您唯一缺少的是在JList
上设置列表模型。完成后,您的JList将获取您添加的值。
所以它会像(抱歉格式化......):
class TestModel {
private DefaultListModel lm_;
public TestModel() {
lm_ = new DefaultListModel();
String[] testList = new String[] {"user1", "user2"};
for(int i=0; i < testList.length; i++) {
lm_.add(i, testList[i]);
}
}
public ListModel getListModel() {
return lm_;
}
}
public class Test {
public Test() {
TestModel tm = new TestModel();
JList list = new JList(tm.getListModel());
}
}