我在我的电脑上制作了一个JavaFX应用程序并修改了它的大小。当我在我的Macbook上构建它时,窗口被扭曲了,我不得不增加宽度以使它看起来还不错。它没有达到笔记本电脑的界限,所以它不是没有足够像素的问题。有人可以告诉我这里的问题是什么,如何在所有分辨率上使固定大小看起来相同?谢谢。
编辑:
@Override
public void start(Stage primaryStage) throws Exception{
FXMLLoader fxmlLoader = new FXMLLoader();
Pane root = fxmlLoader.load(getClass().getResource("main.fxml"));
initializeStuff();
primaryStage.setTitle("Title comes here");
primaryStage.setScene(new Scene(root, 800, 800));
primaryStage.setResizable(false);
primaryStage.show();
}
根面板:
<VBox xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1" stylesheets="/sample/style.css" fx:controller="sample.mainController">
<fx:include source="/sample/menubar/MenuBar.fxml" fx:id="menuBar"/>
</VBox>
答案 0 :(得分:0)
问题不是每个屏幕都相同Pixel Density.您将场景定义为800x800
并禁用调整大小。这可能适用于您的PC,但您的Macbook有不同的pixel density
,这基本上意味着您在该显示器上每英寸有更多/更少的像素。
之前我的应用程序遇到了同样的问题。还使大小静态和禁用大小调整。但是当在另一台笔记本电脑上使用Windows 7
到Windows 8
时,它完全失真了。
解决方案是尝试以最佳方式使用您的布局。不要静态地布置所有内容并定义像素边距。使用JavaFX's
提供的布局并使用其min/preferred/max height/width
属性。