普通组合框每行有一个元素。是否可以使用5rows x 5列创建组合框?例如,在一行中,单元格10x10 px中应该有5个元素。
现在我的代码是:
private ObservableList<Colors> colorList=FXCollections.observableArrayList();
@FXML
private ComboBox<Colors> colorComboBox;
@FXML
private void initialize() {
colorList.add(new Colors(1,"#68ba90"));
colorList.add(new Colors(2,"#b892ff"));
colorList.add(new Colors(3,"#ff1ecd"));
colorList.add(new Colors(4,"#c7003d"));
colorList.add(new Colors(5,"#25c700"));
colorComboBox.setItems(colorList);
colorComboBox.setCellFactory(new Callback<ListView<Colors>, ListCell<Colors>>() {
@Override
public ListCell<Colors> call(ListView<Colors> p) {
return new ListCell<Colors>() {
@Override
protected void updateItem(Colors item, boolean empty) {
super.updateItem(item, empty);
Rectangle rect = new Rectangle(10,10);
if (item == null || empty) {
setGraphic(null);
} else {
rect.setFill(Color.web(item.getCode()));
setGraphic(rect);
}
}
};}
});
}
但结果我有5行,每行一种颜色。我不知道如何每行显示几种颜色。