Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8123052

Cannot switch Toggle Buttons when Caps Lock is activated

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Incomplete
    • Icon: P4 P4
    • 8
    • 7u25
    • javafx
    • None
    • Linux, JVM 8 b99

      I tested this code with toggle buttons:

      import javafx.application.Application;
      import javafx.beans.value.ChangeListener;
      import javafx.beans.value.ObservableValue;
      import javafx.geometry.Insets;
      import javafx.scene.Node;
      import javafx.scene.Scene;
      import javafx.scene.control.Toggle;
      import javafx.scene.control.ToggleButton;
      import javafx.scene.control.ToggleGroup;
      import javafx.scene.layout.HBox;
      import javafx.scene.layout.StackPane;
      import javafx.scene.layout.VBox;
      import javafx.scene.paint.Color;
      import javafx.scene.shape.Rectangle;
      import javafx.stage.Stage;

      public class Test extends Application
      {
          @Override
          public void start(Stage primaryStage)
          {
              final VBox vbox = new VBox();
      // String pillButtonCss = DX57DC.class.getResource("PillButton.css").toExternalForm();
              // create 3 toggle buttons and a toogle group for them
              ToggleButton tb1 = new ToggleButton("Left Button");
              tb1.setId("pill-left");
              ToggleButton tb2 = new ToggleButton("Center Button");
              tb2.setId("pill-center");
              ToggleButton tb3 = new ToggleButton("Right Button");
              tb3.setId("pill-right");
              final ToggleGroup group = new ToggleGroup();
              tb1.setToggleGroup(group);
              tb2.setToggleGroup(group);
              tb3.setToggleGroup(group);
              // select the first button to start with
              group.selectToggle(tb1);
              final Rectangle rect1 = new Rectangle(300, 300);
              rect1.setFill(Color.DARKOLIVEGREEN);
              final Rectangle rect2 = new Rectangle(300, 300);
              rect2.setFill(Color.LAVENDER);
              final Rectangle rect3 = new Rectangle(300, 300);
              rect3.setFill(Color.LIGHTSLATEGREY);
              tb1.setUserData(rect1);
              tb2.setUserData(rect2);
              tb3.setUserData(rect3);
              group.selectedToggleProperty().addListener(new ChangeListener<Toggle>()
              {
                  @Override
                  public void changed(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle)
                  {
                      if (new_toggle == null)
                      {
                      }
                      else
                      {
                          vbox.getChildren().set(1, (Node) group.getSelectedToggle().getUserData());
                      }
                  }
              });
              HBox hBox = new HBox();
              hBox.getChildren().addAll(tb1, tb2, tb3);
              hBox.setPadding(new Insets(10, 10, 10, 10));
      // hBox.getStylesheets().add(pillButtonCss);
              vbox.getChildren().addAll(hBox, (Node) group.getSelectedToggle().getUserData());
              StackPane root = new StackPane();
              root.getChildren().add(vbox);
              Scene scene = new Scene(root, 800, 850);
              primaryStage.setScene(scene);
              primaryStage.show();
          }
          public static void main(String[] args)
          {
              launch(args);
          }
      }

      When I press the Caps Lock I cannot switch the buttons. The Buttons are "locked". Is this a JavaFX bug or I have somewhere bug into my code?

            psafrata Pavel Ĺ afrata
            ppenzovjfx Peter Penzov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: