我有3个HBox设置在一个vbox中,它完全居中显示,直到我试图将vbox放入borderPane。我试图让一个菜单横跨场景的顶部,让我的其余标签和文本字段在中心,除了我的vbox被推到右上角,当它被放入边框窗格。这是我的代码,先谢谢你了。
//COURSE TITLE PANE
HBox courseTitlePane = new HBox(30);
courseTitlePane.getChildren().addAll(courseTitleLabel,courseTitleField);
courseTitlePane.setAlignment(Pos.CENTER);
//
//COURSE NUMBER PANE
HBox courseNumberPane = new HBox(30);
courseNumberPane.getChildren().addAll(courseNumberLabel,courseNumberField);
courseNumberPane.setAlignment(Pos.CENTER);
//
//COURSE CREDITS PANE
HBox creditsPane = new HBox(30);
creditsPane.getChildren().addAll(numOfCreditsLabel,numOfCreditsField);
creditsPane.setAlignment(Pos.CENTER);
//
//COURSE DESCRIPTION PANE
HBox descriptionPane = new HBox(30);
descriptionPane.getChildren().addAll(courseDescriptionLabel,courseDescriptionField);
descriptionPane.setAlignment(Pos.CENTER);
//
VBox pane = new VBox(30);
pane.getChildren().addAll(courseTitlePane,courseNumberPane,creditsPane,descriptionPane);
pane.setAlignment(Pos.CENTER);
BorderPane root = new BorderPane();
root.getChildren().addAll(pane);
root.setTop(menuBar);
Scene scene = new Scene(root,800,500);
primaryStage.setScene(scene);
primaryStage.show();
@James_D评论确实是正确的。如果你看一下BorderPane留档,它描述了BorderPane“在顶部、左侧、右侧、底部和中心位置排列孩子”
因此,就像您将 menuBar 设置为使用 root.setTop(menuBar)
添加到 BorderPane 的顶部一样,要设置 BorderPane 的中心内容,您必须使用 root.setCenter(pane);
。
这是一个完整的例子:
package sample;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
HBox courseTitlePane = new HBox(30);
Label courseTitleLabel = new Label("Course Title");
TextField courseTitleField = new TextField();
courseTitlePane.getChildren().addAll(courseTitleLabel,courseTitleField);
courseTitlePane.setAlignment(Pos.CENTER);
//
//COURSE NUMBER PANE
HBox courseNumberPane = new HBox(30);
Label courseNumberLabel = new Label("Course Number");
TextField courseNumberField = new TextField();
courseNumberPane.getChildren().addAll(courseNumberLabel,courseNumberField);
courseNumberPane.setAlignment(Pos.CENTER);
//
//COURSE CREDITS PANE
HBox creditsPane = new HBox(30);
Label numOfCreditsLabel = new Label("Credits");
TextField numOfCreditsField = new TextField();
creditsPane.getChildren().addAll(numOfCreditsLabel,numOfCreditsField);
creditsPane.setAlignment(Pos.CENTER);
//
//COURSE DESCRIPTION PANE
HBox descriptionPane = new HBox(30);
Label courseDescriptionLabel = new Label("Course Description");
TextField courseDescriptionField = new TextField();
descriptionPane.getChildren().addAll(courseDescriptionLabel, courseDescriptionField);
descriptionPane.setAlignment(Pos.CENTER);
//
VBox pane = new VBox(30);
pane.getChildren().addAll(courseTitlePane,courseNumberPane,creditsPane,descriptionPane);
pane.setAlignment(Pos.CENTER);
final Menu menu1 = new Menu("File");
final Menu menu2 = new Menu("Options");
final Menu menu3 = new Menu("Help");
BorderPane root = new BorderPane();
MenuBar menuBar = new MenuBar();
root.setTop(menuBar);
menuBar.getMenus().addAll(menu1, menu2, menu3);
root.setCenter(pane);
primaryStage.setTitle("Some Generic Course Application");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
首先,我是Java的初学者。我正在尝试使用JavaFX在Java中创建一个Monopoly游戏。我在网格窗格中画了板。 我要问你们的问题是,如何将网格放在边界窗格的中心。网格窗格占据整个屏幕。我希望它在边框窗格的中心,并将其他空间用于菜单和其他窗格。 网格 边界板
我在将带有3个按钮的VBox放在BorderPane右侧部分的中心时遇到问题。有没有办法在FXML或CSS中实现这一点? 更新: 这是FXML中的代码 这是CSS文件 以及应用程序的屏幕截图。我希望Vbox位于BorderPate右侧部分的中心。非常感谢您的回复!
我正在尝试了解SQL Server中的隔离/锁定。 我在读提交隔离级别(默认)中有以下场景 我们有一张桌子。 现在从msdn我明白了 当激发select时,将使用共享锁,因此其他事务无法修改数据(避免脏读)..文档还谈到了行级、页级、表级锁。我想跟着场景走 我想了解的是将获取共享锁的持续时间以及哪个(行、页、表)。 将仅在运行 时获取锁定,或者会获取整整 5 分钟,直到我们到达 COMMIT。
所以,我一直试图将一个边框放在另一个边框(中心部分)中,但到目前为止没有成功。 我尝试过(在从FXML加载的窗格和父场景中): 使用并设置顶部、底部、左侧和右侧锚 在主边框的顶部和左侧添加(无效且在调整舞台大小时不起作用) 当前布局: 我正在寻找的结果(大致) 这个想法是,即使当我调整窗口大小时,FXML布局也将留在MainBorderPane的中心; LoginController.java l
如果我们使用BorderPane,则节点将排列在Top,Left,Right,Bottom和Center位置。 包javafx.scene.layout名为BorderPane的类表示BorderPane。 该类包含五个属性,包括 - bottom - 此属性属于Node类型,它表示放置在BorderPane底部的节点。 您可以使用setter方法setBottom()为此属性设置值。 cente
我有以下代码: 假设线程1调用synchornizer.await()并通过 和块在 然后,另一个线程2调用synchronizer.signalAll()以向线程1发送信号。我的问题是线程2如何通过调用 打电话之前 锁最初是由线程 1 获取的? 我在这里发现了同样的问题: 等待可重入锁中的条件 答案是: “锁定”和“已同步”都暂时允许其他人在等待时获取锁定。要停止等待,线程必须重新获取锁。 我试