添加到ArrayList&调用某些字符串

时间:2014-12-07 19:29:08

标签: java swing user-interface arraylist

对不起,这个问题并不令人满意。让我解释一下。

我正在构建一个GUI,允许用户向系统添加新的巡航。在第1帧,我有一个JList,它显示系统中所有巡航的名称,即

___________________
|Scottish Cruise1 |
|Scottish Cruise2 |
|                 |
|_________________|

以下是构建JList的代码:

    ArrayList Cruise = new ArrayList();
    Cruise.add("Scottish to Greek Waters");
    Cruise.add("Greek to Scottish Waters"); 

    JScrollPane scrollPane = new JScrollPane();
    CruiseList = new JList(Cruise.toArray()); 
    CruiseList.setPreferredSize(new Dimension(200, 200));
    scrollPane.setViewportView(CruiseList);
    CruiseList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    CruiseList.setSelectedIndex(-1); 
    CruiseList.setVisibleRowCount(6); 
    listPanel.add(scrollPane);
    Frame1.setVisible(true);

如您所见,我将Cruise对象存储在ArrayList Cruise = new ArrayList();

然而,第2帧显示另一个GUI,允许用户添加新的Cruise。为了将新Cruise添加到系统中,必须完成以下表单元素:

Cruise Name: JTextField
Start Port: JComboBox
End Port: JComboBox
Start Date: JSpinner
End Date: JSpinner
Assigned to ship: JList

假设Cruise已成功添加到系统中(新的巡航对象也存储在同一个ArrayList中 - ArrayList Cruise = new ArrayList();

问题:

第1帧我有两个按钮:

1. More Details
2. List all Cruises

当我从JList中选择一个Cruise并点击“More Details”时,我想输出字符串,其中包含分配给它的所有细节作为这种格式的输出:

Cruise Name: ________
Start Port: _________
End Port: _______
Start Date: _________
End Date: _______
Assigned to ship: ______

当我从JList中选择一个Cruise并单击“List Details”时,我只希望它输出Cruise Name。

我需要两个独立的ArrayLists吗?除此之外,我如何能够成功地进行新的巡航,获得仅仅是Cruise名称&在frame1上的JList上显示它?

1 个答案:

答案 0 :(得分:0)

有一个列表模型接口可以与 JList 一起使用。让您的列表模型DefaultListModel<Cruise> cruises = new DefaultListModel<>()实现ListModel接口。

cruises.add("Scottish to Greek Waters"); 
cruises.add("Greek to Scottish Waters");

然后使用新的Cruiselist发起您的JList(cruises)。如果希望使用新值更新列表,请更新模型。