Avatar billede stigc Nybegynder
27. oktober 2004 - 18:14 Der er 6 kommentarer og
1 løsning

Jframe setVisible(true) og dispose

Jeg har en JFrame som starter en tråd, og dernæst viser sig selv(Formen er modal). Formen skal vise en progressbar og tråden melder tilbage hvor langt den er kommet. Problemet opstår, når tråden ikke har noget at lave og derfor med det samme melde tilbage at den er 100% færdig. Så hænger min applkation (formen bliver aldrig gemt igen), fordi dispose() bliver kaldt før setVisble(true) har vist formen. Det er i hver tilfald min teori. Hvordan kan jeg undgå dette?

//Her oprettes tråden og formen vises
public void start()
{   
    SongAgent sg = new SongAgent();
    sg.vec = vec;
    sg.callBack = this;
    sg.start();
    setVisible(true);
}
       
public void sendMessage(int p)
{
    if (p==100)   
        dispose();
    else
        pbProgress.setValue(p);
}
Avatar billede arne_v Ekspert
27. oktober 2004 - 19:21 #1
Kan du ikke kalde setVisible inden sg.start ?
Avatar billede stigc Nybegynder
27. oktober 2004 - 19:52 #2
Jeg vidst du ville komme arne. :)
Formen er modal, så den låser desværre.
Avatar billede stigc Nybegynder
27. oktober 2004 - 19:53 #3
Jeg sider og tænker noget med windowOpened event. Men er det den pæneste løsning?
Avatar billede stigc Nybegynder
27. oktober 2004 - 19:59 #4
Og dermed mener jeg i stedet for:

JMyFrame o = new JMyFrame();
JMyFrame.start();

Så lave det om til

JMyFrame o = new JMyFrame();
JMyFrame.setVisible(true);

og så aktivere start metoden i windowOpened eventet.
Avatar billede stigc Nybegynder
27. oktober 2004 - 20:00 #5
Det skulle have været o.start() og o.setVisible(true)
Avatar billede arne_v Ekspert
28. oktober 2004 - 20:30 #6
Hvad med en pragmatisk løsning: lig en lille pause ind i tråden så den ikke
afslutter før visible er kaldt ?
Avatar billede stigc Nybegynder
10. januar 2005 - 22:18 #7
Jeg fandt aldrig en god løsning. Giv væk fra det modale vindue.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester