Mnemonics on checkboxes (and radio buttons) do not work as expected. Consider this example:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class MnemonicTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
GridPane grid = new GridPane(); grid.setVgap(10);
CheckBox cb1 = new CheckBox("Option _A"); cb1.setMnemonicParsing(true); cb1.setFocusTraversable(false);
CheckBox cb2 = new CheckBox("Option _B"); cb2.setMnemonicParsing(true);
CheckBox cb3 = new CheckBox("Option _C"); cb3.setMnemonicParsing(true);
Button execute = new Button("_Go!"); execute.setMnemonicParsing(true);
execute.setOnAction((ActionEvent e) -> {
System.out.println(cb1.isSelected() + ", " + cb2.isSelected() + ", " + cb3.isSelected());
});
grid.add(cb1, 0, 1);
grid.add(cb2, 0, 2);
grid.add(cb3, 0, 3);
grid.add(execute, 0, 4);
Scene scene = new Scene(grid);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
If you start this application and press Alt+A, Option A should be checked. Nothing happens.
When you press Alt+B, Option B is focussed (but not selected)
Activating the mnemonic should actually trigger the control (regardless of focus traversability).
Pressing Alt+G correctly fires the button.
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class MnemonicTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
GridPane grid = new GridPane(); grid.setVgap(10);
CheckBox cb1 = new CheckBox("Option _A"); cb1.setMnemonicParsing(true); cb1.setFocusTraversable(false);
CheckBox cb2 = new CheckBox("Option _B"); cb2.setMnemonicParsing(true);
CheckBox cb3 = new CheckBox("Option _C"); cb3.setMnemonicParsing(true);
Button execute = new Button("_Go!"); execute.setMnemonicParsing(true);
execute.setOnAction((ActionEvent e) -> {
System.out.println(cb1.isSelected() + ", " + cb2.isSelected() + ", " + cb3.isSelected());
});
grid.add(cb1, 0, 1);
grid.add(cb2, 0, 2);
grid.add(cb3, 0, 3);
grid.add(execute, 0, 4);
Scene scene = new Scene(grid);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
If you start this application and press Alt+A, Option A should be checked. Nothing happens.
When you press Alt+B, Option B is focussed (but not selected)
Activating the mnemonic should actually trigger the control (regardless of focus traversability).
Pressing Alt+G correctly fires the button.