Как запроситьFocus на TextField различных вкладок TabPane, всякий раз, когда клавиша Enter нажата на этой конкретной вкладке.Как сосредоточиться на TextField в TabPane, когда нажата клавиша Enter (с использованием Javafx)?
Каждая вкладка в TabPane содержит TextField, когда конкретная вкладка выбирается с помощью Enter Key, чем TextField в этой закладке необходимо получить Focused (requestFocus)
package tabdemo;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Priority;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TabDemo extends Application {
@Override
public void start(Stage primaryStage) {
TabPane tabPane = new TabPane();
tabPane.setPrefHeight(500);
VBox.setVgrow(tabPane, Priority.ALWAYS);
tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
tabPane.setStyle("-fx-background-color: #fff; -fx-border-color: #e7eaeC#e7eaeC#e7eaeC#e7eaec; -fx-border-width: 6;");
Tab tab1 = new Tab();
tab1.setText(" Try Demo");
tab1.setId("TryDemo");
TextField username1 = new TextField();
tab1.setContent(username1);
Tab tab2 = new Tab();
tab2.setText(" Select Company");
tab2.setId("SelectCompany");
TextField username2 = new TextField();
tab2.setContent(username2);
Tab tab3 = new Tab();
tab3.setText(" Create Company");
tab3.setId("CreateCompany");
TextField username3 = new TextField();
tab3.setContent(username3);
//Add childen to tabpane
tabPane.getTabs().addAll(tab1, tab2, tab3);
StackPane root = new StackPane();
root.getChildren().add(tabPane);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
// Tabpane Change Listener
tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>() {
@Override
public void changed(ObservableValue<? extends Tab> arg0, Tab oldtab, Tab newtab) {
if (newtab == tab1) {
}
if (newtab == tab2) {
}
if (newtab == tab3) {
//tab3.getContent().requestFocus();
//username3.requestFocus();
}
}
});
// End Tabpane Change Listener
// Root Listner
root.setOnKeyPressed(new EventHandler<KeyEvent>() {
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.TAB || event.getCode() == KeyCode.ENTER) {
tabPane.requestFocus();
event.consume();
}
}
});
// END Root Listner
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
Любая помощь будет оценена.