如果我有了对象的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