当前位置: 首页 > 知识库问答 >
问题:

创建只包含字符串的Jlist的最简单方法(JList必须在运行时更改)

雍焱
2023-03-14

我尝试在 Netbeans 中创建一个 Jlist,方法是先创建一个 ScrollPane,然后向其中添加一个 Jlist。

然后,我继续使用defaultlistmodel用一些字符串填充JList。add(字符串a)。第一次它很好地显示项目。但是现在基于用户输入,我想清除列表模型中的所有元素并创建一个新列表。

这是我开始遇到一些问题的地方。model.clear()似乎不起作用,jlist 1 . remove allements()也不起作用..

我需要知道我哪里出错了?

 private void populateList(){

    readFileContents();
    model.clear();
    jScrollPane1.validate();

    for(String str : list){

        model.addElement(str);

    }

    jList1.setModel(model);

}

共有1个答案

谷梁淇
2023-03-14

下面是如何重新填充 JList 的示例

public class ClearList extends JFrame {

    String[] list1 = new String[] {"AAAA", "BBBB", "CCCC"};
    String[] list2 = new String[] {"1111", "2222", "3333"};
    DefaultListModel<String> model = new DefaultListModel<>();

    ClearList() {

        JList<String> list = new JList<>(model);
        addElements(list1);

        JButton button = new JButton("Repopulate");
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                model.clear();
                addElements(list2);
            }
        });

        getContentPane().add(list);
        getContentPane().add(button, BorderLayout.LINE_START);

        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }

    private void addElements(String[] elements) {

        for (String s : elements)
            model.addElement(s);
    }

    public static void main(String[] args) {

        new ClearList();
    }
}

您应该考虑将<code>addElements</code>添加到扩展<code>DefaultListModel</code>的自定义类中,或者如果您正在管理多个模型,也可以让它使用一个模型:<code>addElements(String〔〕元素,ListModel模型)</code>。

 类似资料:
  • 你好,我想在java swing中创建一个Jlist,但是我不知道在哪里可以显示它。到目前为止,我看到的所有教程都在一个新窗口中创建列表,这不是我想要的。我想使用一个工具或其他东西来给出我当前所在的框架的具体坐标和位置。我是java swing新手,所以我可能需要一些帮助。我使用windows builder pro作为eclipse的插件。有没有什么工具可以让我用来“画”出列表的显示位置? Th

  • 假设我需要一个regex来验证,例如,一个在任何地方都只包含一个字符的句子。 怎么做?

  • 我试图遍历一个JList,其中每个项目都包含:JGroup-JLabel 目前我拥有的是: 我得到的结果是: Item=javax。摆动JPanel[,0,0,0x0,无效,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=

  • 字符串s2=s1。concat(“ABC”);将在堆区域上创建一个新的字符串对象“ABCABC”。字符串s3=s2。实习生();应在字符串常量池上创建新的字符串对象。 由于这是两个不同的对象,它们的引用不应该相等。但似乎我错过了一些与intern()相关的重要内容。

  • 本文向大家介绍JS给Array添加是否包含字符串的简单方法,包括了JS给Array添加是否包含字符串的简单方法的使用技巧和注意事项,需要的朋友参考一下 JS的Array类型,本身并没有是否包含某个字符串的方法,下面的代码实现了此功能,有需要的同学可以看一下: 以上就是小编为大家带来的JS给Array添加是否包含字符串的简单方法全部内容了,希望大家多多支持呐喊教程~

  • 问题内容: java中有没有一种方法可以用指定数量的指定字符创建字符串?就我而言,我需要创建一个包含10个空格的字符串。我当前的代码是: 有没有更好的方法来完成同一件事。特别是我想快速(在执行方面)。 问题答案: for循环将由编译器优化。在像您这样的情况下,您无需自己担心优化。信任编译器。 顺便说一句,如果有一种方法可以创建一个包含n个空格字符的字符串,那么它的编码方式就和您刚才一样。