有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我的另一个GUI有这个问题,无论我做什么,我都无法修复它。我在书中举了一个例子,但最终还是忽略了对齐

无论我为Pos做什么,我的按钮总是位于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);
    }
}

我希望我的按钮在左上角,但把它们放在左上角


共 (1) 个答案

  1. # 1 楼答案

    啊,问题是你设置的是场景的大小,而不是窗格的大小,因为窗格的大小不同,所以它没有填充整个场景,这就是为什么如果你像这样在窗格中添加边框,你的位置不会改变

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

    更改窗格大小后,您将看到窗格有多小以及位于何处这应该不再是一个问题

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