Java 重新分配JList&;JComboBox数据

Java 重新分配JList&;JComboBox数据,java,swing,Java,Swing,我一直在浏览JavaAPI,但没有幸运地解决这个问题。启动JList后,是否有办法替换或重新加载“数据”字符串?我也一直在寻找用JComboBox做同样的事情 String[] data = {"one", "two", "three", "four"}; JList dataList = new JList(data); 列表数据存储在ListModel中(可通过get/set Model方法访问)。您只需创建一个新的ListModel(也就是ListModel的实现)并使用其setMode

我一直在浏览JavaAPI,但没有幸运地解决这个问题。启动JList后,是否有办法替换或重新加载“数据”字符串?我也一直在寻找用JComboBox做同样的事情

String[] data = {"one", "two", "three", "four"};
JList dataList = new JList(data);

列表数据存储在ListModel中(可通过get/set Model方法访问)。您只需创建一个新的ListModel(也就是ListModel的实现)并使用其setModel方法将其传递给JList。

列表数据存储在ListModel中(可通过get/set Model方法访问)。您只需创建一个新的ListModel(当然,是ListModel的一个实现)并使用其setModel方法将其传递给JList。

您正在使用JList的一个实用工具构造函数,它接受一个数组。列表由ListModel支持。实用工具构造函数使用以下内容创建AbstractListModel的实现:

new AbstractListModel() {
            public int getSize() { return listData.length; }
            public Object getElementAt(int i) { return listData[i]; }
}
其中,
listData
将是您的
数据集。您也可以这样做,并将其传递到
dataList.setModel()
中。如果这不仅仅是一个原型,那么通过创建自己的ListModel的全面实现,您可能会得到最好的服务

供参考,这里是

JComboBox稍微简单一点,因为
DefaultComboxModel
类有一个构造函数,它将
对象的数组作为参数。要替换其中的数据,只需调用:

 myComboBox.setModel(new DefaultComboBoxModel(data));

您正在使用JList的一个实用工具构造函数,它接受一个数组。列表由ListModel支持。实用工具构造函数使用以下内容创建AbstractListModel的实现:

new AbstractListModel() {
            public int getSize() { return listData.length; }
            public Object getElementAt(int i) { return listData[i]; }
}
其中,
listData
将是您的
数据集。您也可以这样做,并将其传递到
dataList.setModel()
中。如果这不仅仅是一个原型,那么通过创建自己的ListModel的全面实现,您可能会得到最好的服务

供参考,这里是

JComboBox稍微简单一点,因为
DefaultComboxModel
类有一个构造函数,它将
对象的数组作为参数。要替换其中的数据,只需调用:

 myComboBox.setModel(new DefaultComboBoxModel(data));

为什么最初是用字符串设置的?为什么最初是用字符串设置的?谢谢akf。这让事情变得更清楚了。我一直在寻找如何更换阵列…谢谢akf。这让事情变得更清楚了。我一直在寻找如何替换阵列。。。