我的另一个GUI遇到了这个问题,无论做什么我都无法解决。遵循我书中的一个示例,但最终仍然忽略了对齐方式。
无论我setAlignment
为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);
}
}
我希望我的按钮位于基线的左上方,但请使其位于左上方。
答案 0 :(得分:1)
问题是您是在设置场景的大小而不是窗格的大小,因此,由于窗格的大小不一样,因此不会填充整个场景,这就是为什么在边框上添加边框不会改变位置的原因这样的窗格
pane.setStyle("-fx-border-color:black; -fx-border-width: 2 2 2 2");
更改窗格大小后,您将看到窗格的大小和位置,这不再是问题
总的来说,对齐不会被忽略,因为窗格很小,您看不到更改