我的另一个 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/