jestem zabawy z klasy Graphics Java trochę i Zastanawiałem się tylko - gdy jest to konieczne, aby wywołać metodę repaint()
? Próbowałem to skomentować i nie wpłynęło to na mój graficzny interfejs użytkownika. Widziałem, jak dużo czytałem w kodzie Java GUI, który czytałem. Czy ktokolwiek zastanawia się, kiedy go użyć i kiedy go nie używać?repaint() Metoda w Javie
Odpowiedz
Nigdy nie jest to konieczne w przypadku większości aplikacji typu swing, ponieważ obsługują go automatycznie (w przypadku typowych operacji, takich jak zmiana wartości tekstowych na przyciskach i dodawanie danych do pola listy).
Zwykle tylko wtedy, gdy wprowadzono jakieś zmiany, których obrót nie zostanie automatycznie podniesiony - na przykład nie używasz menedżera układu i ręcznie zmieniasz rozmiar komponentów (ponieważ zwykle menedżer układu odświeża swoje elementy, jeśli to konieczne).
Po uruchomieniu aplikacji, to „malować” swoje GUI.
Trzeba zadzwonić repaint()
, gdy chcemy, aby ponownie zwrócić GUI ponieważ zmieniły coś w środku.
Jeśli chcesz usunąć przycisk, musisz go usunąć (lub uczynić niewidoczny), następnie musisz zadzwonić pod numer validate()
lub repaint()
, aby ponownie obliczyć (ponownie narysować) GUI.
repaint()
odświeża widok (część), więc kiedy tylko dokonywać żadnych zmian na składniku, trzeba to nazwać. Na przykład, jeśli obrócić element graficzny, trzeba wykonać połączenie do repaint()
, aby zobaczyć zmianę w składniku zawierającym
Dziękuję za wyjaśnienie! Tak naprawdę staram się, aby moja grafika była taka, że gdy użytkownik kliknie na osi X (jest to wykres prędkości dźwięku), wykres przybliży tę część wykresu. Trochę utknąłem, jak to zrobić. Czy masz jakies pomysły? –
Oto, co prawdopodobnie zrobiłbym: uzyskaj współrzędne punktu, który kliknąłem, podany przez 'getX()' i 'getY()'. Następnie utwórz grafikę ** g **, która będzie obszarem, który chcę pokazać i 'repain (g)'. –
Jedynym rzeczy mogę myśleć:
new Thread() {
@Override
public void run() {
while (ClassName.this.isVisible()) {
ClassName.this.updateStatusLabel();
ClassName.this.validate();
ClassName.this.repaint(50L);
try {
Thread.sleep(1000);
} catch (final InterruptedException e) {
Log.log(e);
}
}
}
}.start();
Załóżmy masz powyższy kod w konstruktorze JDialog. Co updateStatusLabel nie sprawdza zmienną logiczną, publicznym lub ustawiane za pomocą metody i ustawić ikonę na JLabel w podstawy do takiej wartości logicznej. Jeśli nie sprawdzasz i nie odświeżasz GUI, modyfikacja nie zostanie pokazana, dopóki nie zostanie zgłoszone inne zdarzenie, najprawdopodobniej wywołane przez użytkownika. Jeśli użytkownik czeka, aż etykieta pokaże określoną ikonę z powodu, powiedzmy, wskazania, że urządzenie jest dostępne przez Internet, nigdy nie będzie wchodzić w interakcję (lub przynajmniej opóźnia interakcje tak wiele).
- 1. repaint() w Javie
- 2. Metoda Repaint() wywoływania w innej klasie
- 3. Metoda łączenia/zakotwiczenia w Javie
- 4. JPanel repaint issue
- 5. repaint() nie działa
- 6. Typowa metoda w Javie bez rodzajowy argumentu
- 7. Metoda konkatenacji 2 ciągów w Javie
- 8. Metoda z Generic typ zwracany w Javie
- 9. Jak działa metoda equals() w Javie
- 10. Co to jest metoda wygodna w Javie?
- 11. Qt - (? Powolne repaint) Przeprowadzka Frameless okno
- 12. Jak sprawdzić, czy metoda istnieje w środowisku wykonawczym w Javie?
- 13. Czy istnieje metoda __equals w PHP, tak jak w Javie?
- 14. Najlepsza metoda do analizy różnych niestandardowych dokumentów XML w Javie
- 15. Jak szybko określić, czy dana metoda zostanie nadpisana w Javie
- 16. Czy metoda executeUpdate w Javie jest bezpieczna dla wątków?
- 17. Jak korzystać z SwingWorker w Javie?
- 18. Readkey w Javie
- 19. Metoda przeciążania w pythoniu
- 20. Zmuszanie IE8 rerender/repaint: Przed/Po elementami pseudo
- 21. Metody macierzyste w Javie
- 22. Zatrzymywanie wątku w Javie?
- 23. metoda wychodzenia setInterval w javascript
- 24. synchroniczne metoda współbieżności w Ruby
- 25. Labirynt Pacmana w Javie
- 26. Zmniejszyć LinkedHashMap w Javie
- 27. Obiekt funkcji w Javie
- 28. Iterator nad HashMap w Javie
- 29. Brakująca metoda w języku Java lub PHP
- 30. metoda działa w refleksji, ale nie w sposób „normalny” w Javie
Dziękuję bardzo! –