-
Anonim
Tworzę Arkanoida. Mam JFrame a w nim JPanel na którym rysuję poprzez paintComponent(). Problem pojawia się gdy wyświetlam JOptionPane.showInputDialog do wczytywania nick'u - widać w powstałym oknie to co jest pod nim, myślę że umieściłem coś w złym miejscu.
Wygląda to w wielkim uproszczeniu tak:
class A extends JPanel
{
paintComponent(Graphics g)
{
sterage(); / / funkcja ustalająca wartości zmiennych odpowiedzialnych za rysowanie i cołość działania programu;
}
sterage()
{
sethighscore()// funkcja sprawdza czy wynik osiągniety nadaje się do najlepszych i zczytuje nick i zapisuje do pliku
}
sethighscore()
{
name = (String)JOptionPane.showInputD ialog( this, "Znalazłeś się w pierwszej dziesiątce. Podaj imię:");
/*wyświetla się tak jak pisałem wyżej ale działa poprawnie */
jeszcze mam jedno pytanie co zwraca JOptionPane.showInputDialog jeśli nic nie wpiszę i nacisnę OK nie jest to null, ani "" , " "???
}
} -
Adept
Cześć
daj skrina.
>U.R.B.I. napisał
>jeszcze mam jedno pytanie co zwraca
>JOptionPane.showInputDi alog jeśli nic nie wpiszę i
>nacisnę OK nie jest to null, ani "" , " "???
Przecież to nie jest trudno sprawdzić eksperymentalnie. czemu więc tego nie zrobiłeś? -
Anonim
>Adept napisał
>Przecież to nie jest trudno sprawdzić eksperymentalnie.
>czemu więc tego nie zrobiłeś?
jak pobierałem do np. String name
a później wyświetlałem:
System.out.println( "name " + name "score " + score)
to otrzymywałem coś takiego
name score 140
z tego wnioskowałem, że name == "", ale nie chociaż powinno, bo do pliku też się nic nie zapisuje, a null to nie jest
inny sposób nie przychodzi mi do głowy; ) -
Dzemus
Aj waj - bron Cie Panie Boze przed umieszczaniem logiki aplikacji w paintComponent(Graphics g)... Masz jakis wyzszy cel przemawiajacy za tym? PaintComponent powinien sluzyc (jak nazwa wskazuje:P) do odrysowania komponentu (na postawie jakichs tam danych). Pamietaj, ze nie jestes jedynym ktory wywoluje te funkcje.. Robi to takze watek AWT w niektorych przypadkach.
W twoim wyglada to tak:
jestes wlasnie w trakcie odrysowywania komponentu (panelu), ale w miedzyczasie wywolujesz JOptionPane, ktory wyskakuje nad naszym panelem powodujac ponowne odrysowanie go, czyli wywolanie fukcji paintComponent :P A ta z kolei wywoluje kolejny JOptionPane itd.
Reasumujac - zrob sobie watek, ktory bedzie wygladal tak:
while(warunekKonca) {
logikaAplikacji.nastepnyKrok();
glownyPanel.repaint();
}
I w logice zamiesc sprawdzanie warunku highScore. A tak w ogole juz to HighScore pewnie jest po koncu gry, wiec to w ogole inna metoda powinna byc. -
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

