|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
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 :]
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
smas
Okrutny Admin
Dołączył: 20 Paź 2005
Posty: 1634
Przeczytał: 0 tematów
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Roxel
pijak
Dołączył: 06 Kwi 2006
Posty: 249
Przeczytał: 0 tematów
Skąd: Pszczyna
|
Wysł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 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 :]
|
Wysł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 |
|
|
|
|
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
|