将 ArrayList 中的项目添加到 Array 并显示在 JList 中

Add items from ArrayList to Array and show in JList

我正在尝试将 ArrayList<String> 中的所有项目添加到另一个 class 中的 String[] 数组,但我没有这样做。我尝试了很多方法,但都无济于事。另一个 class 中的 String[] 数组不显示任何项目。因此,我无法将数组添加到 JList。我不知道如何处理它。这是我的代码:

public class bookbook extends JFrame{
  java.util.List<String> timeList = new ArrayList<String>();

  public bookbook(){
    selectTime.timeArr = new String[ timeList.size() ];
    timeList.toArray(selectTime.timeArr);
  }
}

public class SelectTime extends JFrame{
  String[] timeArr = {};
  private JList jlstTime = new JList(timeArr);

  public SelectTime(){
    jpTicket.add(jlstTime);
  }
}

我真的需要你的帮助。谢谢!

您正在直接修改 JList 数组,如文档所述,这将导致未定义的行为。尝试此代码:将函数 updateList 添加到 class SelectTime 以使用适当的方法完成此操作

 public class bookbook extends JFrame{
      java.util.List<String> timeList = new ArrayList<String>();

      public bookbook(){
        String [] timeArr = new String[ timeList.size() ];
        timeList.toArray(selectTime.timeArr);
        selectTime.updateList(timeArr);
      }
    }

-

public class SelectTime extends JFrame{
  String[] timeArr = {};
  private JList jlstTime = new JList(timeArr);

  public SelectTime(){
    jpTicket.add(jlstTime);
  }

  public void updateList(String [] array)
  {
      jlstTime.setListData(array);
      jlstTime.invalidate();
  }
}