我正在设计一个GUI,允许用户向系统添加新的巡航。在此GUI中,用户必须填写一个表格,以便将新巡航存储在系统或我的ArrayList中final ArrayList Cruise = new ArrayList();
。然而,我的GUI由一个JList组成,它只显示Cruises的名称。
问题是我正在存储新Cruise并分配了几个字段:
StringBuilder sb = new StringBuilder();
sb.append("\nCruise Name: ").append(NameOfCruise).append("\n");
sb.append("Start Port: ").append(startLValue).append("\n");
sb.append("End Port: ").append(endLValue).append("\n");
sb.append("Start Date: ").append(model1.getValue()).append("\n");
sb.append("End Date: ").append(model.getValue()).append("\n");
sb.append("Assigned to ship: ").append(Shipname).append("\n");
Cruise.add(sb);
当将新巡航添加到系统时,我希望新巡航存储所有细节(巡航名称,起始位置,结束位置等)。但是在我的JList上,我只想挑选名称巡航,以便JList只显示NameofCruise。
这就是我创建Jlist的方式以及我如何将新的Cruise对象添加到JList中:
final ArrayList Cruise = new ArrayList();
Cruise.add("Scottish to Greek Waters");
Cruise.add("Greek to Scottish Waters");
Cruise.add(sb);
JScrollPane scrollPane = new JScrollPane();
CruiseList = new JList(Cruise.toArray());
scrollPane.setViewportView(CruiseList);
CruiseList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
CruiseList.setSelectedIndex(-1);
CruiseList.setVisibleRowCount(6);
listPanel.add(scrollPane);
Frame1.setVisible(true);
添加Cruise.add(sb);
并调用System.out.println(Cruise.toString());
正在打印出null。
如何告诉Java只将arraylist中的巡航名称添加到JList?