Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何在JavaFX场景中定位按钮(或任何GUI元素)?_User Interface_Button_Javafx_Position_Fxml - Fatal编程技术网

User interface 如何在JavaFX场景中定位按钮(或任何GUI元素)?

User interface 如何在JavaFX场景中定位按钮(或任何GUI元素)?,user-interface,button,javafx,position,fxml,User Interface,Button,Javafx,Position,Fxml,我试图将JavaFX按钮放在UI上的特定位置(特定坐标),但没有任何效果。我猜有一种方法可用于此,但我找不到它。您可以使用窗格。setLayoutX()和setLayoutY() 导入javafx.application.application; 导入javafx.event.ActionEvent; 导入javafx.event.EventHandler; 导入javafx.scene.scene; 公共类测试仪扩展应用程序{ 公共静态void main(字符串[]args){ 发射(args

我试图将JavaFX按钮放在UI上的特定位置(特定坐标),但没有任何效果。我猜有一种方法可用于此,但我找不到它。

您可以使用窗格。setLayoutX()和setLayoutY()

导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
公共类测试仪扩展应用程序{
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
公共无效开始(阶段primaryStage){
setTitle(“你好,世界!”);
按钮btn=新按钮();
btn.setText(“你好,世界”);
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
System.out.println(“你好,世界!”);
}
});
窗格根=新窗格();
btn.setLayoutX(250);
btn.setLayoutY(220);
root.getChildren().add(btn);
原始阶段。设置场景(新场景(根,300250));
primaryStage.show();
}
}
layoutX
layoutY
Main.java

package sample;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.fxml.FXMLLoader;

public class Main extends Application {
  @Override
  public void start(Stage primaryStage) throws Exception {
    Scene scene = FXMLLoader.load(getClass().getResource("sample.fxml"));
    primaryStage.setTitle("Window Title");
    primaryStage.setScene(scene);
    primaryStage.show();
  }

  public static void main(String[] args) {
    launch(args);
  }
}
注意:您还可以使用和方法在控制器中动态设置和属性的值,而不是通过标记。此外,您可以在UI元素标记中使用and标记(即
)来设置FXML标记内部的x坐标和y坐标,作为使用属性的替代方法

<Button text="Button" layoutX="50" layoutY="100" />
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.Scene?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.control.Button?>

<Scene>
  <Pane prefWidth="300" prefHeight="300">
    <!-- Button Positioned Using layoutX and layoutY -->
    <Button text="Button" layoutX="50" layoutY="100" />
  </Pane>
</Scene>
package sample;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.fxml.FXMLLoader;

public class Main extends Application {
  @Override
  public void start(Stage primaryStage) throws Exception {
    Scene scene = FXMLLoader.load(getClass().getResource("sample.fxml"));
    primaryStage.setTitle("Window Title");
    primaryStage.setScene(scene);
    primaryStage.show();
  }

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