请帮助。 情况:我们的VBox带有很多按钮(我可以通过键盘上的箭头键向上/向下滚动焦点),但是它们不适合较小的窗体,因此我需要垂直滚动。我应用了ScrollPane-最终,除了移动焦点之外,一切都变得很好。当我按上/下箭头键时,焦点保持静止,但会影响滚动。 我需要使用ScrollPane禁用按键滚动(仅使用鼠标!),并按向上/向下箭头键启用移动焦点。您能帮我吗,我该怎么办?
非常感谢!
这是我的代码
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollPane;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TestJavaFXScrollPane extends Application {
@Override
public void start(Stage primaryStage) {
Button btn0 = new Button("Btn0");
btn0.setOnKeyPressed((event) -> {
System.out.println("btn.KeyPressed; Code: " + event.getCode());
});
Button btn1 = new Button("Btn1");
Button btn2 = new Button("Btn2");
Button btn3 = new Button("Btn3");
VBox root = new VBox();
root.getChildren().addAll(btn0, btn1, btn2, btn3);
ScrollPane scrollPane = new ScrollPane(root);
scrollPane.setOnKeyPressed(event -> {
//if(event.getCode() == KeyCode.DOWN || event.getCode() == KeyCode.UP)
//event.consume(); // Tried to fix issue, but without result ((
});
Scene scene = new Scene(scrollPane, 100, 80);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:0)
我自己找到了解决方案(对吗?)
removeSurrounding
}