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

时间:2016-03-18 14:07:33

标签: arrays arraylist jlist

我正在尝试将ArrayList<String>中的所有项添加到另一个类的String[]数组中,但我没有这样做。我尝试了很多方法,但没有用。另一个类中的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);
  }
}

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

1 个答案:

答案 0 :(得分:0)

您正在直接修改JList数组,正如文档所述,这将导致未定义的行为。试试这段代码:在类updateList中添加函数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();
  }
}