Java 使用按钮按下事件将所选项目从一个jList添加到另一个jList。不工作

Java 使用按钮按下事件将所选项目从一个jList添加到另一个jList。不工作,java,swing,jlist,defaultlistmodel,Java,Swing,Jlist,Defaultlistmodel,所以我有两个列表,一个已经填充,第二个为空。还有一个按钮,当按下该按钮时,会从第一个列表中获取所选项目(我知道它正在工作,因为print语句),然后将第二个列表添加到该列表中,但它似乎不工作。如果有任何帮助,我将不胜感激 flightsList = new javax.swing.JList(); flightsList.setModel( new javax.swing.DefaultListModel() { String[] strings = { "121", "105",

所以我有两个列表,一个已经填充,第二个为空。还有一个按钮,当按下该按钮时,会从第一个列表中获取所选项目(我知道它正在工作,因为print语句),然后将第二个列表添加到该列表中,但它似乎不工作。如果有任何帮助,我将不胜感激

flightsList = new javax.swing.JList();

flightsList.setModel(
  new javax.swing.DefaultListModel() {
    String[] strings = { "121", "105", "109"};
    public int getSize() { return strings.length; }
    public Object getElementAt(int i) { return strings[i]; }
});

jScrollPane1.setViewportView(flightsList);

qList = new javax.swing.JList();

qList.setModel(
  new javax.swing.DefaultListModel() {
    String[] strings = { };
    public int getSize() { return strings.length; }
    public Object getElementAt(int i) { return strings[i]; }
});

jScrollPane2.setViewportView(qList);

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
  int selectedItemIndex = flightsList.getSelectedIndex();
  String selectedFlight = (String) flightsList.getModel().getElementAt(selectedItemIndex);
  DefaultListModel model = (DefaultListModel) qList.getModel();
  System.out.println(selectedFlight);
  model.addElement(selectedFlight);
  qList.setModel(model);
}

虽然这不是关于约定的讨论,但使用导入将使代码更易于阅读。但是,您可以使用ListModel直接更新JList。对ListModel的任何更新也会影响JList

JList flightsList = new JList();
listmodel1 = new DefaultListModel();
flightsList.setModel(listmodel1);
String[] strings = { "121", "105", "109"};
JScrollPane1.setViewportView(flightsList);

qList = new JList();
listmodel2 = new DefaultListModel();
qList.setModel(listmodel2);
String[] strings2 = new String[3];
JScrollPane2.setViewportView(qList);

private void addButtonActionPerformed(ActionEvent evt)     {                                    
  String selectedFlight = (String) listmodel1.getElementAt(flightsList.getSelectedIndex());
  listmodel2.addElement(selectedFlight);
  System.out.println(selectedFlight);
}

public int getSize(String[] str) { 
    return str.length;
}

public String getElementAt(String[] str, int i) { 
    return str[i];
}

您需要创建并发布一个以获得最佳帮助。