Anonymní profil Jirka – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jirka – Programujte.comAnonymní profil Jirka – Programujte.com

 

Příspěvky odeslané z IP adresy 88.103.221.–

Jirka
Java › Obsluha FXML z Vlákna
29. 10. 2014   #195362

#7 ingiraxo
OK tak díky zejtra na to juknu.

Jirka
Java › Obsluha FXML z Vlákna
28. 10. 2014   #195350

#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
Java › Obsluha FXML z Vlákna
28. 10. 2014   #195345

#4 ingiraxo

Text jsem zkonstruktoval a už to nehází chybu, ale nepřidává to ten text. Vypisováni do konzole funguje ještě zkusím z toho vlákna volat metodu v kontroleru a tam se bude všechno dít. Jinak díky to mě nenapadlo :)

Jirka
Java › Obsluha FXML z Vlákna
28. 10. 2014   #195335

#2 ingiraxo
con.text.setItems(con.dialog);

Jirka
Java › Obsluha FXML z Vlákna
28. 10. 2014   #195333

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ý.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý