Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java proces bar - laguje

Ahoj, v jave se pokouším o proces bar.

Mám čísla od 0 do 100, které vypisuji při operaci(export do videa) do konzole, vše je funkční.

Místo do konzole jsem se pokusil vypsat číslo do procesbaru:

Procesbar.setValue(cislo);

Jde o to, že se do proces baru nic nevypisuje, a až doběhne operace(export do videa) naskočí 100%, nevíte někdo jak na to? Chce to něco zvláštního?

Předmět Autor Datum
Nepomôže progressbar ?
pme 01.05.2013 11:25
pme
Na to jsem samozřejmě koukal, ale nic ,,zvláštního,, tam nedělá..
MašinkaTomáš 01.05.2013 11:30
MašinkaTomáš
a threaduješ?
AZOR 01.05.2013 11:58
AZOR
Nevím co to znamená, takže asi ne, jednoduše řečeno. Kód vypadá ,,v podstatě,, takhle (představme s…
MašinkaTomáš 01.05.2013 12:09
MašinkaTomáš
Jednoduše řečeno, thread - je jako další vlákno, co by to updatovalo. http://www.java2s.com/Tutoria…
AZOR 01.05.2013 12:21
AZOR
Chápu co jsi mi tím chtěl říct, pokusím se s tím poprat. Dík poslední
MašinkaTomáš 01.05.2013 12:35
MašinkaTomáš

Jednoduše řečeno, thread - je jako další vlákno, co by to updatovalo.

http://www.java2s.com/Tutorial/Java/0280__SWT/Usin gThreadtoupdateProgressBarvalue.htm - něco takového. Nemam kompilátor v javě, abych to mohl ověřit - každopádně aby se to nekouslo to imho budeš muset poslat do threadu /nezávislý běh / což znamená napsat někde implements Runnable či extends Thread.

Nevim jak to vysvětlit, ale třebas tyhle dvě metody:
a();
b();

Až doběhne a, pak teprve muže běžet b(); (v tvém případě CELÝ FOR a pak teprve muže běžet něco jako REPAINT).

Verze threadu udělá

Vlakno a = new Vlakno("a");
Vlakno b = new Vlakno("b");
a.start();
b.start();

Že b nečeká až skončí a, ale běží vedle/paralelně. V češtině o tom tady: 16.html

Další věc:
mužeš zavolat thread.sleep();

V tomhle:
for(int i = 0; i < 100; i++){
Procesbar.setValue(i);
Procesbar.repaint();
}
Nemužeš vidět nic - pač tam nemáš někde sleep, a teoreticky to muže proběhnout pod schopnosti člověka vidět, že se to hejbe

Zpět do poradny Odpovědět na původní otázku Nahoru