[英]How to group content and add it to ArrayList as one object?
我的GUI設計中聲明了幾個swing組件。 我已將大多數組件成功轉換為字符串格式,如下所示:
String NameOfCruise = Cruisename.getText().trim(); //JTextField
String startLValue = startL.getSelectedItem().toString(); //JComboBox
String endLValue = endL.getSelectedItem().toString(); // JComboBox
new SimpleDateFormat("dd/MM/yyyy").format(model1.getValue())); //JSpinner
String Shipname = ShipList.getSelectedValue().toString(); // JList
上面組件的目的是構造一個允許用戶向系統添加新Cruise的表格。 獲得上面所有的表單輸入后,我想將其存儲到ArrayList中。
ArrayList Cruise = new ArrayList();
但是,我想以這種格式存儲它:
Cruise Name: ________
Start Port: _________
End Port: _______
Start Date: _________
End Date: _______
Assigned to ship: ______
這樣,如果我可以選擇列出系統中的所有巡航,它將顯示為一個對象。 例如,如果我在ArrayList中有一個Cruise,它將同時顯示分配給它的所有詳細信息。
有沒有辦法做到這一點?
您可能會混淆數據及其表示形式。 我想象您將在Cruise中將Cruise對象存儲在ArrayList<Cruise>
,並且所有保存的數據都是純數據,包括Strings,Date等,並且這應該是程序Model的一部分 。 如何顯示取決於您的GUI或View 。 如果要以您提到的格式顯示List<Cruise>
,則可以在JList中進行顯示,例如,讓單元格渲染器返回一個JPanel,其中的適當字段填充有各個Cruise的屬性。
這是一個如何使用正確的數據表示形式的示例:
public static void main(String[] args) {
List<Cruise> cruiseList = new ArrayList<Cruise>();
cruiseList.add(new Cruise("Cruise 1", "Florida", "Puerto Rico", new Date(), new Date(), "Captain X"));
System.out.println(cruiseList.get(0));
}
private static class Cruise {
private String name;
private String startPort;
private String endPort;
private Date startDate;
private Date endDate;
private String assignedToShip;
public Cruise(String name, String startPort, String endPort, Date startDate, Date endDate, String assignedToShip) {
super();
this.name = name;
this.startPort = startPort;
this.endPort = endPort;
this.startDate = startDate;
this.endDate = endDate;
this.assignedToShip = assignedToShip;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Cruise Name: ").append(name).append("\n");
sb.append("Start Port: ").append(startPort).append("\n");
sb.append("End Port: ").append(endPort).append("\n");
sb.append("Start Date: ").append(startDate).append("\n");
sb.append("End Date: ").append(endDate).append("\n");
sb.append("Assigned to ship: ").append(assignedToShip).append("\n");
return sb.toString();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStartPort() {
return startPort;
}
public void setStartPort(String startPort) {
this.startPort = startPort;
}
public String getEndPort() {
return endPort;
}
public void setEndPort(String endPort) {
this.endPort = endPort;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getAssignedToShip() {
return assignedToShip;
}
public void setAssignedToShip(String assignedToShip) {
this.assignedToShip = assignedToShip;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.