如果我有了對象的ArrayList對象:如何從具有javafx中對象的數組列表的對象創建組合框?
class Event{
private ArrayList<Room> rooms;
//..
public void setRooms(ArrayList<Room> rooms) {
this.rooms = rooms;
}
public ArrayList<Room> getRooms() {
return rooms;
}
}
// ---------------------
class Room{
private String roomId;
private String roomName;
public Room(String roomId, String roomName) {
this.roomId = roomId;
this.roomName = roomName;
}
public String getRoomId() {
return roomId;
}
public String getRoomName() {
return roomName;
}
public void setRoomId(String roomId) {
this.roomId = roomId;
}
public void setRoomName(String roomName) {
this.roomName = roomName;
}
}
如何從房間對象數組中創建組合框中的組合框?
我只是顯示某種對象標識符。
TableColumn<Event, ArrayList> roomsColumn = new TableColumn<>("Room Select");
roomsColumn.setMinWidth(200);
roomsColumn.setCellValueFactory(new PropertyValueFactory<>("rooms"));
//Create an observable list to populate the table with.
ObservableList<Event> eventList = FXCollections.observableArrayList();
//loop the json to populate the observable list
for (Event event : events.getEventList()){
eventList.add(event);
}
//populate the table
eventTable.setItems(eventList);
eventTable.getColumns().addAll(eventColumn, bDateColumn, eDateColumn, roomsColumn);
**所有列都建,但房間欄顯示一個逗號分隔的房間列表對象:
com.***[email protected], com.***[email protected], com.***[email protected]
令人困惑的是,爲什麼要使用'ComboBox'使'TableCell'呈現一個列表。您的表格是供用戶讀取數據還是收集數據? – Jai
如果它是用於顯示(讀取)數據,那麼'rooms'列表應該被渲染爲一個簡單的'Label',可能通過'roomName'的連接。如果它應該用於數據收集,那麼您只希望用戶選擇一個房間,所以'Event'類包含'rooms'列表將會是錯誤的 - 您可能需要創建一個單獨的模型類用於存儲收集的數據。 – Jai
我希望用戶能夠從房間列表中選擇..行將是事件,事件日期,事件時間,(comboBox)事件室 – silversunhunter