Javafx 2 在JavaFX中以编程方式在文本字段旁边显示消息
我的JavaFX应用程序中有一个Javafx 2 在JavaFX中以编程方式在文本字段旁边显示消息,javafx-2,Javafx 2,我的JavaFX应用程序中有一个TextField。我希望以编程方式在文本的右侧显示消息(如验证消息)。我想使用弹出窗口,并在弹出窗口中设置带有消息的标签。但我不确定如何将其定位到文本字段的右侧。下面是这方面的示例代码。你能帮我做这个吗 public void start(Stage primaryStage) { primaryStage.setTitle("JavaFX Welcome"); GridPane grid = new GridPane();
TextField
。我希望以编程方式在文本的右侧显示消息(如验证消息)。我想使用弹出窗口
,并在弹出窗口
中设置带有消息的标签
。但我不确定如何将其定位到文本字段的右侧。下面是这方面的示例代码。你能帮我做这个吗
public void start(Stage primaryStage) {
primaryStage.setTitle("JavaFX Welcome");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(scenetitle, 0, 0, 2, 1);
Label userName = new Label("User Name:");
grid.add(userName, 0, 1);
TextField userTextField = new TextField();
grid.add(userTextField, 1, 1);
Label pw = new Label("Password:");
grid.add(pw, 0, 2);
PasswordField pwBox = new PasswordField();
grid.add(pwBox, 1, 2);
Label label=new Label();
label.setText("This is an error message");
final Text actiontarget = new Text();
grid.add(actiontarget, 1, 6);
final Popup popup = new Popup();
popup.getContent().add(label);
//Want to display this popup to the right of the userTextField.
Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
表演完舞台后,你要做什么
Bounds userTextFieldBounds = userTextField.getBoundsInLocal();
Point2D popupLocation = userTextField.localToScreen(userTextFieldBounds.getMaxX(), userTextFieldBounds.getMinY());
popup.show(userTextField, popupLocation.getX(), popupLocation.getY());
Java8中引入了localToScreen(…)
方法;如果您使用的是早期版本,则需要
Bounds userTextFieldBounds = userTextField.getBoundsInLocal();
Point2D popupLocation = userTextField.localToScene(userTextFieldBounds.getMaxX(), userTextFieldBounds.getMinY());
popup.show(userTextField,
popupLocation.getX()+scene.getX()+primaryStage.getX(),
popupLocation.getY()+scene.getY()+primaryStage.getY());