如何将元素添加到已创建的JList(生成的Netbeans)

时间:2019-01-14 15:06:05

标签: java swing oop netbeans jlist

我正在使用Java在Netbeans中开发应用程序,并被告知使用Netbeans提供的GUI创建功能。因此,我无法编辑initComponents();。编辑JList的创建并为其添加默认列表模型的方法。

我尝试创建一个新的JList,但是这导致了无限循环。我从来没有通过自己编写控件来创建控件,而只是通过IDE的GUI创建工具。

这是我目前拥有的:

private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
    //String to hold current patients data
    String patientDetails;

    //Take the arraylist from the model
    ArrayList<IAccountStrategy> unapprovedPatients;
    unapprovedPatients = model.getObservers();

    //Create default list model to store the patients details
    DefaultListModel<String> unapprovedPatientModel = new DefaultListModel<>();

    IAccountStrategy xx;

    //For loop to iterate through each element of unapprovedPatients
    for(int i = 0; i < unapprovedPatients.size(); i++){

        //get the current patients details and store them in a string variable
        xx = unapprovedPatients.get(i);
        patientDetails = xx.getAccountID() + xx.getUsername() + xx.getFirstname() + xx.getLastname();

        //Add string variable to list model
        unapprovedPatientModel.addElement(patientDetails);
    }
    //add list model to existing JList
    listPatients.addElement(unapprovedPatientModel);
}              

我想将列表模型中的所有元素输出到实际的JList中,然后让用户与列表本身进行交互。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

  

是否无法根据需要使用列表

您刚刚编写了代码以创建DefaultListModel。

所以现在您只需要添加:

list.setModel( unapprovedPatientModel );

因此JList可以使用新创建的模型。

尽管此代码的问题在于该代码将在每次激活窗口时执行。

但是重点是,您需要做的就是使用setModel()方法更新列表。您如何在IDE中执行此操作取决于您。