#7 ingiraxo
OK tak díky zejtra na to juknu.
Příspěvky odeslané z IP adresy 88.103.221.–
Jirka
Jirka
#4 ingiraxo
Tak takhle to funguje,ale hází to stejně chybu.
Thread t1 = new Thread(new Runnable()
{
@Override
public void run()
{
try
{
Thread.sleep(500);
}
catch (InterruptedException ex)
{
Logger.getLogger(FXML2Controller.class.getName()).log(Level.SEVERE, null, ex);
}
dialog.add("blabla");
text.setItems(dialog);
}
});
t1.start();
Exception in thread "Thread-4" java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-4
at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:204)
at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:364)
at javafx.scene.Scene.addToDirtyList(Scene.java:485)
at javafx.scene.Node.addToSceneDirtyList(Node.java:424)
at javafx.scene.Node.impl_markDirty(Node.java:415)
at javafx.scene.Node.notifyParentsOfInvalidatedCSS(Node.java:8709)
at javafx.scene.Node.requestCssStateTransition(Node.java:8639)
at javafx.scene.Node.pseudoClassStateChanged(Node.java:8680)
at javafx.scene.control.Cell$2.invalidated(Cell.java:417)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.scene.control.Cell.setEmpty(Cell.java:443)
at javafx.scene.control.Cell.updateItem(Cell.java:671)
at com.sun.javafx.scene.control.skin.ListViewSkin$2.updateItem(ListViewSkin.java:272)
at javafx.scene.control.ListCell.updateItem(ListCell.java:451)
at javafx.scene.control.ListCell.lambda$new$161(ListCell.java:148)
at javafx.scene.control.ListCell$$Lambda$192/1853532887.onChanged(Unknown Source)
at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
at java.util.AbstractList.add(AbstractList.java:108)
at chater.FXML2Controller$1.run(FXML2Controller.java:178)
at java.lang.Thread.run(Thread.java:745)
Jirka
Používám JavaFX a po zmáknutí tlačítka potřebuji vypisovat text do ListViewu bez závislosti na to co se bude dít potom a nejde mi to do hlavy. Vytvořím vlákno viz. dole s instancí mého kontroleru a pak na zkoušku stále připisuji blabla.
public class Test extends Thread
{
@Override
public void run()
{
FXML2Controller con = new FXML2Controller();
while(true)
{
try
{
Test.sleep(500);
}
catch (InterruptedException ex)
{
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
con.dialog.add("blabla");
con.text.setItems(con.dialog);
}
}
}
*dialog je ObservableList a text je ListView
V konroleru vlákno spustím a pak to vypíše chybu:
Exception in thread "Thread-4" java.lang.NullPointerException
at test.Test.run(Test.java:33)
Za všechny nápady jsem vděčný.