ComboBox JavaFx yang dapat diedit berfungsi dengan baik tetapi tombol panah kiri diartikan sebagai Shift-TAB.
Seperti yang Anda lihat, fokus diatur ke ComboBox dan titik penyisipan berada di tengah bidangnya. Menekan tombol panah kiri memindahkan fokus ke kontrol pertama, TextField di sebelah kiri gambar saat menekan tombol panah kanan memindahkan penyisipan satu karakter ke kanan seperti yang diharapkan seperti di TextField mana pun.
Bagaimana cara menangkap peristiwa untuk mereproduksi perilaku Bidang Teks dalam Kotak Kombo yang dapat diedit?
Saya telah mencoba menangkap peristiwa penting melalui ComboBox.setOnKeyPressed() dan event.consume() tetapi tidak berhasil.
Berikut adalah program minimal untuk mereproduksi perilaku tak terduga ini:
@Override
public void start( Stage stage ) {
stage.setTitle( "Editable ComboBox and left-arrow key" );
ComboBox<String> cmbBx = new ComboBox<>();
cmbBx.getItems().addAll( "A", "B", "C", "D", "E" );
cmbBx.setMinWidth( 150 );
cmbBx.setEditable( true );
cmbBx.setOnKeyPressed( new EventHandler<KeyEvent>(){
@Override public void handle( KeyEvent event ) {
System.err.println( event );
event.consume(); }}); // Consuming left arrow key is inoperant
GridPane grid = new GridPane();
grid.setVgap( 4 );
grid.setHgap( 4 );
grid.setPadding( new Insets( 4, 4, 4, 4 ));
grid.add( new Label( "TextField:" ), 0, 0 );
grid.add( new TextField() , 1, 0 );
grid.add( new Label( "ComboBox:" ) , 2, 0 );
grid.add( cmbBx , 3, 0 );
stage.setScene( new Scene( grid ));
stage.show();
}