Possiedo un'applicazione JavaFX e un'attività di concorrenza. mentre l'attività è in esecuzione, voglio aggiungere il messaggio da UpdateMessage() per un TextAreaJavaFX ChangeListener non funziona sempre
perché l'associazione non accodare il nuovo testo al TextArea, ho usato un ChangeListener
worker.messageProperty().addListener((observable, oldValue, newValue) -> {
ta_Statusbereich.appendText("\n" + newValue);
});
Questo è lavorando ma non su ogni cambiamento. Ho controllato con uno System.out.println() e contato nella attività dal 1 al 300
for (Integer i = 1; i <= 300; i++) {
updateMessage(i.toString());
System.out.println(i.toString());
}
questo println() nel Task mi dà quello che voglio 1,2,3,4,5 , 6,7,8 e così via, ma il mio TextArea mostra 1,4,5,8,9 ho quindi aggiunto un println nel ChangeListener e ottenere lo stesso risultato, 1,4,5,8,9 (il il risultato è casuale non sempre 1,4,5 ...)
perché? ci sono altri modi per aggiungere il testo del messaggio a TextAres, magari con bind?
"Perché?": Ha spiegato pienamente alla [documentazione] (http://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/Task.html#updateMessage -java.lang.String-). Cosa vuoi veramente fare qui? (Suppongo che non sia solo per visualizzare i valori 1-300 in un'area di testo, in quanto non sarebbe necessario un compito.) –
l'attività rinomina i file in una cartella selezionata sulla rete e cerco di elencare tutti i file elaborati nel textarea. come una configurazione che stampa i file copiati. – Garog