我刚开始使用JavaFX,问题是,在更改场景后,并非所有组件都被显示。例如,我有一个GridPane,它将被添加到边框中心,一个标签将被添加到边框底部。但是在我更改场景后,这个标签不会显示,只有在调整大小后才有效。
以下是一个简单的最小、完整和可验证的示例:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.Button;
import javafx.scene.Scene;
public class View extends Application implements EventHandler<ActionEvent> {
private Scene scene1, scene2;
private Button b1, b2;
private Stage stage;
public static void main(String... args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
this.stage = stage;
this.createScene1();
this.stage.setScene(this.scene1);
this.stage.setWidth(200);
this.stage.setHeight(200);
this.stage.show();
}
public void createScene1() {
BorderPane border = new BorderPane();
GridPane root = new GridPane();
root.add(new Label("Scene 1"), 0, 0);
this.b1 = new Button("Change to Scene 2");
this.b1.setOnAction(this);
root.add(this.b1, 0, 1);
border.setCenter(root);
border.setBottom(new Label("Should be visible"));
this.scene1 = new Scene(border);
}
public void createScene2() {
BorderPane border = new BorderPane();
GridPane root = new GridPane();
root.add(new Label("Scene 2"), 0, 0);
this.b2 = new Button("Change to Scene 1");
this.b2.setOnAction(this);
root.add(this.b2, 0, 1);
border.setCenter(root);
border.setBottom(new Label("Should be visible"));
this.scene2 = new Scene(border);
}
@Override
public void handle(ActionEvent e) {
if (this.b1 != null) {
if (this.b1 == e.getSource()) {
this.createScene2();
this.stage.setScene(this.scene2);
}
}
if (this.b2 != null) {
if (this.b2 == e.getSource()) {
this.createScene1();
this.stage.setScene(this.scene1);
}
}
}
}
我无法重现您的问题,因为您的代码对我来说运行良好。但是您的组件可能会缩小到无法渲染的程度。为了避免这种情况,请尝试使用前缀最小宽度和高度。
我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:
我的场景中有一个对象。我希望能够调整窗口的大小,并与它一起调整窗格的大小。我还想在窗格旁边放置一个。 到目前为止,我已经成功地生成了一个完全可调整大小的或一个,其中包含和对象,但当我调整窗口大小时,窗格不会随之调整大小。 以下是带有锚烷的FXML: 只有的版本基本上就是版本中使用的代码,但具有和属性。 如何制作一个场景,使其具有可调整大小的和?
我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。
窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re
#include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j
问题内容: 我在一个框架中有2个JPanels。第一个面板包含Java项目,例如按钮等。出现了我添加的两个按钮,但是在我调整窗口大小之后才出现JSpinner。我想这与我要添加的其他项目也会发生。我该如何解决这个问题? 问题答案: 您需要 在 调用JFrame 之后 向GUI添加组件,这是向后的,因为在添加任何东西之前渲染GUI都是有意义的,因此以后添加的所有东西都需要重新粉刷才显示。 取而代之的