2014-04-10 5 views
5

'de yapılan işlem JavaFX progressindicator ile bir yükleme işlemini belirtmek isterim. Sorun, kod ilk kez çalıştırıldığında göstergenin dönmemesidir. İkinci seferde, döndürme, hem devre dışı bırakma hem de görünür özellik gibi, bağların çalıştığı anlamına gelir.JavaFX İlerlemeyen bir iplik döndürme işlemine sahip olmayan iş parçacığı, FXDread

Ayrıca, FX iş parçacığındaki durumu değiştiririm ve ayrı bir iş parçacığı üzerinde çalışıyorum, bu yüzden burada hata göremiyorum.

Sorun gören var mı?

Denetleyici:

Fxml:

hatası gibi görünen
<ScrollPane fitToHeight="true" fitToWidth="true" prefHeight="600.0" 
    prefWidth="500.0" xmlns="http://javafx.com/javafx/8" 
    xmlns:fx="http://javafx.com  
    /fxml/1"> 
    <content> 
     <StackPane> 
      <children> 
       <VBox fx:id="parentToDisable"> 
        <!-- shortened --> 
        <Button fx:id="btnSave" mnemonicParsing="false" onAction="#onSave" 
         text="Speichern" /> 
        <!-- shortened --> 
       </VBox> 
       <ProgressIndicator fx:id="loadingIndicator" 
        maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" 
        minWidth="-Infinity" prefHeight="60.0" prefWidth="60.0" 
        visible="false" /> 
      </children> 
     </StackPane> 
    </content> 
</ScrollPane> 

cevap

4

: RT-33261. JDK 8u20'nin son sürümlerinde sabitlenmiş gibi görünüyor.

Tahminimce, sahne grafiği ilk oluşturulduğunda görünmeyecek olan ilerleme göstergesiyle ilgili. Çözüm olarak, fxml dosyasında ProgressIndicator den visible="false" özelliğini kaldırmak ve bir Platform.runLater(...) çağrısında bağlayıcı sarın:

public void initialize(...) { 
    Platform.runLater(() -> loadingIndicator.visibleProperty().bind(isSaving)); 
} 
+0

bir 'Platform.runLater içine sarmak için (());' çağrı yardımcı oldu. Teşekkür ederim. - user48569 36 saniye önce düzenle – simonides

İlgili konular