【发布时间】:2019-12-17 03:02:20
【问题描述】:
有没有办法用百分比而不是像素值来定义按钮(或任何控件)的大小。我用button.setPrefSize(20,10);如果我调整窗口大小,按钮的大小保持不变。
我正在开发一个在 Raspberry Pi 上运行的应用程序,我计划设置全屏模式。我有这个示例代码:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class example extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Button button = new Button();
button.setPrefSize(300,300);
BorderPane borderPane = new BorderPane(button);
Scene scene = new Scene(borderPane);
primaryStage.setFullScreen(true);
primaryStage.setScene(scene);
primaryStage.show();
}
}
如果我在我的电脑上运行这段代码,它看起来像这样:
但是当我在屏幕较小的树莓派上运行它时,视图看起来像这样:
(请注意,第二张图片确实比第一张图片更小,而不是按钮更大,也不是两者的按钮大小相同 i 像素)
在两者上,按钮都保持相同的像素大小。
如何以百分比为单位设置按钮大小,所以当我在 Raspberry Pi 中运行它时(或者当我调整窗口大小时相同),它会得到相同的大小?
我不想使用 FXML。
【问题讨论】:
-
对于某些情况,
GridPane与Column/RowConstraints和percentWidth/Height。您可能需要为每个其他子项添加最多 2 个约束,以防没有一个边界与其他子项的 x/y 坐标相匹配... -
请在询问之前做一些研究(在您的代码中看不到任何与大小有关的内容)
-
如果没有 FXML,您将无法做到这一点。您甚至在帖子的标题中确认了这一点; FXML 控件使用作为 JavaFX 类实例的属性。
-
我已经在我的真实程序中使用了网格窗格,但这仅有助于控制控件的位置百分比,而不是控件本身的大小
标签: javafx