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

ScrollPane doesn't consume event when we scroll content with mouse wheel

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • fx2.0.2
    • fx2.0
    • javafx
    • None
    • java6
      windows 7
      fx b42

      To reproduce run following code and scroll content of inner scrollpane with mouse wheel.


      import javafx.application.Application;
      import javafx.event.EventHandler;
      import javafx.scene.Parent;
      import javafx.scene.Scene;
      import javafx.scene.control.Button;
      import javafx.scene.control.CheckBox;
      import javafx.scene.control.Label;
      import javafx.scene.control.RadioButton;
      import javafx.scene.control.ScrollPane;
      import javafx.scene.input.MouseEvent;

      import javafx.scene.layout.HBox;
      import javafx.scene.layout.Pane;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;

      public class ScrollPaneInScrollPane extends Application {

          public static void main(String[] args) {
              launch( args);
          }

          private Parent getContent() {
               Pane box = new Pane();
              final ScrollPane pane = new ScrollPane();
              HBox hbox = new HBox(20);
              VBox vbox1 = new VBox(10);
              vbox1.getChildren().addAll(new Label("one"), new Button("two"), new CheckBox("three"), new RadioButton("four"), new Label("five"));
              VBox vbox2 = new VBox(10);
              vbox2.getChildren().addAll(new Label("one"), new Button("two"), new CheckBox("three"), new RadioButton("four"), new Label("five"));
              hbox.getChildren().addAll(vbox1, vbox2);
              pane.setContent(hbox);
              pane.setStyle("-fx-background-color: red;-fx-border-color:green;-fx-border-width:5;");
              pane.setFocusTraversable(false);
              ScrollPane outer = new ScrollPane();
              outer.setContent(pane);
              outer.setMaxHeight(100);
              pane.setMaxHeight(100);
              pane.setMaxWidth(100);
              box.getChildren().add(outer);


              return box;
          }

          public void start(Stage stage) {
              stage.setX(100);
              stage.setY(100);
              stage.setWidth(300);
              stage.setHeight(300);
              Scene scene = new Scene(getContent());
              stage.setScene(scene);
              stage.show();
          }
      }

            miflemi Mick Fleming
            anazarov Andrey Nazarov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: