2016-03-25 17 views
0

自分のPCにJavaFXアプリケーションを作成し、サイズを固定しました。私がMacbook上に作成したときに、ウィンドウが歪んでいたので、もう一度OKにするために幅を広げなければならなかった。それは十分なピクセルの問題ではないので、ノートパソコンの境界に達しませんでした。誰かが私にここでの問題が何であるか教えてもらえますか?固定解像度をすべての解像度で同じように見せるにはどうしたらいいですか?ありがとうございました。異なる解像度でJavaFXステージの幅の問題

編集:

@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

あなたの '.fxml'ファイル、それを開くコードなどを提供してください。 – RAnders00

答えて

0

問題は、すべての画面は同じPixel Density.あなたは800x800を可能とサイズ変更を無効にするには、あなたのシーンを定義しているではありません。これはお使いのPCにとっては問題ありませんが、お使いのMacbookにはpixel densityという別のものがあります。これは、基本的には、モニタ上に1インチあたりのピクセル数が多い/少ないことを意味します。

以前はアプリケーションで同じ問題がありました。また、サイズを静的にしたり無効にしたりしました。しかし、それを別のノートパソコンのWindows 7からWindows 8まで使用すると、完全に歪んでいました。

解決策は、レイアウトを最適に使用しようとしています。すべてを静的にレイアウトしたり、ピクセルマージンを定義したりしないでください。 JavaFX'sのレイアウトを使用し、min/preferred/max height/widthのプロパティで遊んでください。

関連する問題