将 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();
}
}
我正在尝试将 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();
}
}