java - 无论我编写什么代码,GUI 中的按钮始终位于左上角位置

标签 java user-interface button javafx

我的另一个 GUI 遇到了这个问题,无论我做什么都无法解决它。按照我书中的一个例子,结果仍然是对齐被忽略。

无论我为 Pos 做什么setAlignment,我的按钮总是位于 GUI 的左上角

尝试重新组织代码,以及 setAlignment 的不同位置

package application;


import javafx.scene.image.*;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;



public class Game extends Application {
    Rectangle rect = new Rectangle(0, 800, 800, 100);


    public void start(Stage primaryStage) {

        rect.setFill(Color.BLACK);

        Button pushA = new Button("Fight");
        pushA.setOnAction(this::processButtonPressFight);

        Button pushB = new Button("Block");
        pushB.setOnAction(this::processButtonPressFight);

        Button pushC = new Button("Bag");
        pushC.setOnAction(this::processButtonPressFight);

        FlowPane pane = new FlowPane(pushA, pushB, pushC);
        pane.setAlignment(Pos.BASELINE_LEFT);
        pane.setHgap(100);

        Group root = new Group(rect, pane);
        Scene scene = new Scene(root, 800, 900);

        primaryStage.setTitle("Dungeon Crawler Battle!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public void processButtonPressFight(ActionEvent event) {

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

我希望我的按钮位于左侧基线,但将它们放在左上角。

最佳答案

啊,问题是您设置的是场景的大小而不是 Pane 的大小,因此由于 Pane 的大小不同,它不会填充整个场景,这就是为什么如果向 Pane 添加边框,您的位置不会改变的原因像这样的 Pane

pane.setStyle("-fx-border-color:black; -fx-border-width: 2 2 2 2");

更改 Pane 大小后,您将看到 Pane 的大小和位置,这应该不再是问题

总而言之,对齐方式没有被忽略,您只是看不到更改,因为 Pane 很小

关于java - 无论我编写什么代码,GUI 中的按钮始终位于左上角位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55817044/

相关文章:

java - 使用 Java 使应用程序显示在 GUI 中

JavaFX GridPane 对象对齐

html - 腹肌Button 内的定位元素未正确定位

java - PublishSubject - 有没有办法执行 onNext()?

java - @webServlet 不适用于 tomcat 7 eclipse

JavaFX TitledPane 双边框使用 css 文件

JavaFx 和套接字监听器

javascript - 出于可访问性目的,内部导航栏选项卡是否被视为链接或按钮?它们需要什么伪状态?

visual-studio - 我可以使用 C# 在 Visual Studio 2005 中创建透明按钮吗

java - hibernate 加载时间很长(我认为 hibernate 加载所有项目)