首页 > 解决方案 > 如何将元素添加到已创建的 JList(Netbeans 生成)

问题描述

我正在使用 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 中,然后让用户与列表本身进行交互。

提前致谢!

标签: javaswingoopnetbeansjlist

解决方案


是否无法按照我的意愿使用列表

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

所以现在你只需要添加:

list.setModel( unapprovedPatientModel );

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

虽然这段代码的问题是每次激活窗口时都会执行代码。

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


推荐阅读