Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Java - repaint() - ktoś to rozumie?

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Pią 22:57, 09 Cze 2006    Temat postu: Java - repaint() - ktoś to rozumie?

Dlaczego po uruchomieniu programu przy wykonywaniu kodu:

for( y= 0; y < 300; ++y ) {
mainFrame.repaint();
for( int wait= 0; wait < 10000000; wait++ );
}

Rzeczywiście repaint() jest wywoływany tak około y == 150? Wcześniej w programie tworzę kilka przycisków, wczytuję obrazek i ustawiam containery.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
smas
Okrutny Admin



Dołączył: 20 Paź 2005
Posty: 1634
Przeczytał: 0 tematów


PostWysłany: Pią 23:04, 09 Cze 2006    Temat postu: Re: Java - repaint() - ktoś to rozumie?

Madras napisał:
Dlaczego po uruchomieniu programu przy wykonywaniu kodu:

for( y= 0; y < 300; ++y ) {
mainFrame.repaint();
for( int wait= 0; wait < 10000000; wait++ );
}

Rzeczywiście repaint() jest wywoływany tak około y == 150? Wcześniej w programie tworzę kilka przycisków, wczytuję obrazek i ustawiam containery.

to proste, powinno być for (int y=0... pewnie zmieniasz y;
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Roxel
pijak



Dołączył: 06 Kwi 2006
Posty: 249
Przeczytał: 0 tematów

Skąd: Pszczyna

PostWysłany: Pią 23:07, 09 Cze 2006    Temat postu:

1. Ta metoda nie gwarantuje ze malowanie wykona sie od razu, to tylko sugestia dla jframe'a.

Cytat:
public void repaint()
Repaints this component.

If this component is a lightweight component, this method causes a call to this component's paint method as soon as possible. Otherwise, this method causes a call to this component's update method as soon as possible.


Dlatego moze on dostac dwa sygnaly od repaint() zanim rzeczywiscie sie od nowa wymaluje.

2. Natomiast ta petla

Cytat:
for( int wait= 0; wait < 10000000; wait++ );


chyba nie jest dobrym pomyslem.
Na kazdym obiekcie mozna wywolac przeciez metodę void wait(long timeout). No chyba ze to ma jakis inny cel.


Ostatnio zmieniony przez Roxel dnia Pią 23:09, 09 Cze 2006, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Pią 23:07, 09 Cze 2006    Temat postu:

Cytat:
to proste, powinno być for (int y=0... pewnie zmieniasz y;


To nie takie proste, y jest zmienną klasową i mam ją zmieniać, jakbym tam int dopisał, to by mi się 300 razy to samo przerysowywało ;p.

Cytat:
Ta metoda nie gwarantuje ze malowanie wykona sie od razu, to tylko sugestia dla jframe'a.
(...)
Dlatego moze on dostac dwa sygnaly od repaint() zanim rzeczywiscie sie od nowa wymaluje.

Wiem o tym, problem w tym, że na początku długo nie maluje, a potem jak już zacznie, to idzie płynnie... A zaczyna właśnie przy y == 150 (około).
I dlaczego setMaximumSize działa tak, jakby nie działał? Wrr &%#$^&* Java :<.

A ten wait mi rzuca wyjątkiem przy pierwszym wywołaniu ;P. Coś chyba mam pecha do Javy ;).
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin