2016-03-25 16 views
0

Bilgisayarımda bir JavaFX uygulaması yaptım ve boyutunu düzeltdim. Macbook'umda oluşturduğumda, pencere bozuldu, tekrar tekrar bakmak için genişliği arttırmak zorunda kaldım. Dizüstü bilgisayar sınırlarına ulaşmadı, bu yüzden yeterli piksel sorunu değil. Birisi bana burada sorunun ne olduğunu anlatabilir mi ve sabit boyutun tüm çözünürlüklerde nasıl aynı görünmesini sağlayabilirim? Teşekkür ederim.JavaFX Farklı çözünürlüklerde sahne genişliği sorunu

Düzenleme:

@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(); 
} 

Kök paneli:

<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

Bazı kodları sağlayın: '.fxml' dosya, onu açan kod, vb ... – RAnders00

cevap

0

sorun her ekran aynı Pixel Density. Sen 800x800 olmak ve yeniden boyutlandırma devre dışı bırakmak için sahneyi tanımlamak gelmiştir değildir. Bu PC'niz için uygun olabilir, ancak MacBook'unuzun farklı bir pixel density vardır, bu temel olarak bu monitörde inç başına daha az/daha az pikseliniz olduğu anlamına gelir.

Daha önce bir uygulamada aynı sorunu yaşadım. Ayrıca boyut statik ve yeniden boyutlandırma yeniden boyutlandırıldı. Ancak, başka bir dizüstü bilgisayarda Windows 7'dan Windows 8'a kadar kullanırken, tamamen bozulmuştur.

Çözüm, düzenlerinizi en iyi şekilde kullanmaya çalışıyor. Her şeyi statik olarak belirleme ve piksel kenar boşluklarını tanımlama. Düzenlenen JavaFX's kullanın ve min/preferred/max height/width özellikleriyle oynayın.