- テキストのカスタマイズ: ComboBoxのセルに表示されるテキストをカスタマイズするには、セルファクトリ(CellFactory)を使用します。セルファクトリは、セルを作成するためのコールバック関数です。次のコード例は、セルのテキストを大文字に変換する例です。
comboBox.setCellFactory(param -> new ListCell<String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
} else {
setText(item.toUpperCase());
}
}
});
- グラフィックのカスタマイズ: ComboBoxのセルに表示されるグラフィックをカスタマイズするには、同様にセルファクトリを使用します。次のコード例は、セルにアイコンを表示する例です。
comboBox.setCellFactory(param -> new ListCell<String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
setGraphic(null);
} else {
setText(item);
setGraphic(new ImageView("icon.png"));
}
}
});
- イベントハンドリング: ComboBoxのセルにイベントハンドラを追加することもできます。次のコード例は、セルがクリックされたときにアラートダイアログを表示する例です。
comboBox.setCellFactory(param -> new ListCell<String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
} else {
setText(item);
}
}
@Override
public void startEdit() {
super.startEdit();
// セルがクリックされたときの処理
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("セルがクリックされました: " + getItem());
alert.showAndWait();
}
});
以上が、JavaFXのComboBoxのセルをカスタマイズする方法といくつかのコード例です。これらの例を参考にして、自分のニーズに合ったカスタマイズを行ってみてください。