您好我必须从JList中选择一个元素到另一个元素,从第一个元素中删除它 我创建的方法只插入一个元素,覆盖最后一个元素,并不从第一个JList中删除所选项 这是代码:
第一个清单
private javax.swing.JList listaRosa;
通过此方法填充:
private void visualizzaRosaButtonvisualizzaRosa(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
visualizzaSquadraSelezionata();
String fileSquadra;
fileSquadra = squadraDaVisualizzare.getText();
DefaultListModel listModel = new DefaultListModel();
try {
FileInputStream fstream = new FileInputStream("C:/Users/Franky/Documents/NetBeansProjects/JavaApplication5/src/javaapplication5/Rose/"+fileSquadra+"");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
listModel.addElement(strLine);
System.out.println(strLine);
}
listaRosa.setModel(listModel);
//Close the input stream
in.close();
} catch (Exception e) {
}
第二个列表,我想在其中插入从第一个中删除的项目:
private javax.swing.JList listaTitolari
这是NOT工作代码:
private void aggiungiTitolareButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultListModel listModel = new DefaultListModel();
String daInserire;
listModel.addElement(listaRosa.getSelectedValue());
listModel.removeElement(listaRosa.getSelectedValue());
listaTitolari.setModel(listModel);
}
由于
答案 0 :(得分:16)
问题是
listModel.addElement(listaRosa.getSelectedValue());
listModel.removeElement(listaRosa.getSelectedValue());
你可能正在添加一个元素并立即删除它,因为添加和删除操作都在同一个listModel上。试试
private void aggiungiTitolareButtonActionPerformed(java.awt.event.ActionEvent evt) {
DefaultListModel lm2 = (DefaultListModel) listaTitolari.getModel();
DefaultListModel lm1 = (DefaultListModel) listaRosa.getModel();
if(lm2 == null)
{
lm2 = new DefaultListModel();
listaTitolari.setModel(lm2);
}
lm2.addElement(listaTitolari.getSelectedValue());
lm1.removeElement(listaTitolari.getSelectedValue());
}
答案 1 :(得分:10)
清除JLIST的最佳和最简单的方法是:
myJlist.setListData(new String[0]);