[英]How to clear a Jlist
我有一个组合框,每次选择一个项目时,面板上都会显示一个相应的JList,并且该JList由文本文件填充。
我的问题是,当我在组合框中的不同项目之间进行选择时,如果上一个列表具有更多元素(例如3),而其他元素只有2,则第三个项目将保留在列表中,并且除非其他列表中包含最少相同数量的元素。
以下是我的代码。
JList list = new JList();
Path Aparts = Paths.get(".\src\assets\acurap.txt");
String[] partList = new String[50];
String temp2 = "";
teamComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
if (teamComboBox.getSelectedItem().equals("Acura")) {
imageLabel.setIcon(acura);
populatedAcurap();
}
}
void populatedAcurap() {
InputStream input;
try {
input = new BufferedInputStream(Files.newInputStream(Aparts));
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
int i = 0;
temp2 = reader.readLine();
while(temp2 != null) {
partList[i] = temp2;
list.setListData(partList);
temp2 = reader.readLine();
i++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
您的阅读方法无处不在...
而是从文件中读取每个元素并将其添加到新的ListModel
,完成后将模型应用于JList
,例如...
void populatedAcurap() {
try (BufferedReader reader = new BufferedReader(new FileReader(Files.newInputStream(Aparts)))) {
String temp2 = null;
DefaultListModel model = new DefaultListModel();
while((temp2 = reader.readLine()) != null) {
model.addElement(temp2);
}
list.setModel(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
有关更多详细信息,请查看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.