将值添加到JList

时间:2010-12-02 19:10:52

标签: java

我有两个类,一个视图,我的所有控件都放在我的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]);
    }
}

1 个答案:

答案 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());
  }
}