gpt4 book ai didi

javafx-8 - JavaFX 8 TextArea 松散关注选项卡

转载 作者:行者123 更新时间:2023-12-02 08:29:24 24 4
gpt4 key购买 nike

是否可以更改 JavaFX TextArea 的默认行为,以便按 Tab 将焦点传递到下一个组件?

最佳答案

虽然 @ItachiUchiha 解决方案有效,但正如他所说,这取决于布局(他的示例中的 box)。

基于此question , 无论布局如何,您都可以修改 TextArea 的默认行为。

但您将需要使用此私有(private) API,该 API 可能随时更改,恕不另行通知。

在此示例中,TabShitf+Tab 将具有所需的行为,而 Ctrl+Tab 将插入 "\t " 在文本区域。

@Override
public void start(Stage primaryStage) {
TextArea area = new TextArea();
area.addEventFilter(KeyEvent.KEY_PRESSED, (KeyEvent event) -> {
if (event.getCode() == KeyCode.TAB) {
TextAreaSkin skin = (TextAreaSkin) area.getSkin();
if (skin.getBehavior() instanceof TextAreaBehavior) {
TextAreaBehavior behavior = (TextAreaBehavior) skin.getBehavior();
if (event.isControlDown()) {
behavior.callAction("InsertTab");
} else if (event.isShiftDown()) {
behavior.callAction("TraversePrevious");
} else {
behavior.callAction("TraverseNext");
}
event.consume();
}
}
});

VBox root = new VBox(20, new Button("Button 1"), area, new Button("Button 2"));

Scene scene = new Scene(root, 400, 300);
primaryStage.setScene(scene);
primaryStage.show();
}

关于javafx-8 - JavaFX 8 TextArea 松散关注选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28670617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com