ASDF czy DZIADEK MRÓZ, jest tam któryś z was?
adam: ASDF czy DZIADEK MRÓZ, jest tam któryś z was?
3 lis 14:47
adam: Utworzyłem TextField w javie
private TextField pt;
pt = new TextField("PT", 1);
pt.setLocation(11, 555);
Jest on na sztywno na górze po środku, i nie mogę go przesunąć dlaczego?
Próbowałem okno.getContentPane().setLayout(null); , ale wtedy okno mi się wysypuje.
3 lis 14:50
adam: Rzuciłem do metody paint, tylko problem jest taki, że to się cały czas rysuje na nowo.
3 lis 14:53
Dziadek Mróz:
pt.setLocation(11, 555)
To z tego wynika, że
okno ma rozmiar około x: 30
3 lis 15:14
3 lis 15:18
adam: 1) nie mogę przesunąć pola tekstowego
2) chce rysować za pomocą g.fillOval i sterować klawiaturą, ale nie widzę tego obiektu na
ekranie − może się schował z tyłu, oraz cały czas jest focus na pole tekstowe
3 lis 15:20
adam: Ad 2) Sterowanie za pomocą strzałek
3 lis 15:21
adam: 3) Mogę zmienić szerokośc i długość pola tekstowego za pomocą poletekstowe.setbounds, ale tylko
i tylko wtedy gdy jest w metodzie paint, oraz gdy znajduje się tam repaint okna, ale to źle,
ponieważ przerysowuje mi całe okno cały czas
3 lis 15:22
adam: −−−−−
Czwarta sprawa, ale gdy odpowiesz mi na powyższe pytania.
To dodać do obiektu, to znaczy grafiki wywołanie zdarzenia przesunięcia. Bo grafikę potrafię
narysować.
3 lis 15:23
Dziadek Mróz:
1) int x, y;
Jakie wartości początkowe przyjmują te dwie zmienne? Bo sobie je inkrementujesz i
dekrementujesz, ale nigdzie ich nie zdefiniowałeś.
2) Pewnie musisz pogrzebać w składowej Enabled lub Visible
3) przerysowuje bo jak inaczej miałoby robić? Najpierw usuwa starą zawartość i rysuje nową. Nie
narysujesz dwóch obrazów na jednej palecie.
3 lis 15:32
Dziadek Mróz:
Dawno w Javie nie grzebałem, nie mam JDK u siebie bo nie pociągnie na tym starym sprzęcie.
3 lis 15:33
adam: 1)zrobione
3)tak, ale chce zmienić położenie pola tekstowego, i już więcej nie rysować go, ma być stałe,
nie chce tworzyć pola tekstowego w metodzie repaint
2)nie wiem o jakie składowego i czego chodzi
3 lis 15:33
Dziadek Mróz:
setbounds(x, y, x+20, y+40);
3 lis 15:33
adam: 3) w metodzie paint*
3 lis 15:34
adam: Dziadek, ale własnie ta metoda nie chce działać.
3 lis 15:35
adam: wrzuce skrina
3 lis 15:35
3 lis 15:37
adam: getContentPane().setLayout(null); − czytałem , że powinno się tego użyć,
ale wtedy okno jest puste bez kontrolek
3 lis 15:38
Dziadek Mróz:
2) Obiekty wizualne mają dziedziczone z głównej klasy składowe Enabled (że możesz używać
obiektu albo nie) i Visible (że obiekt jest widoczny albo nie)
Ewentualnie Twój obiekt wyjechał poza obręb kontenera nadrzędnego (mparentFrame)
Jak chcesz w Javie pobierać lub ustawiać składowe to dla np składowej Szerokość użyj metody
setSzerokosc(int sz) oraz getSzerokosc() bo taki jest standard i każdy kto ogarnia będzie
wiedział do czego ta metoda, nawet eskimos z Grenlandii
3 lis 15:39
Dziadek Mróz:
Poczekaj kilkanaście minut bo mam obiad wstawiony i muszę co chwila wstawać i sprawdzać
3 lis 15:40
adam: Ja cię doskonale rozumiem, ale zobacz tutaj
http://pastebin.com/MjJWuPt2
fragment przeniosłem do metody paint()
pt= new TextField("Pole", 60); //w obrębie konstruktora?
//zmiana położenia nie działa
pt.setBounds(x, y, x+20, y+40);
add(pt);
i teraz działa, ale widać, że obiekt przerysowuje się cały czas
3 lis 15:43
adam: Nie rozumiem dlaczego w metodzie paint mogę zmienić położenie obiektu, ale już w konstruktorze
nie. Chodzi mi o to, aby zadeklarować raz na zawsze jego położenie, a w konstruktorze to on po
prostu jest po środku na górze...
3 lis 15:45
Dziadek Mróz:
Jak zaczynałem zabawę to chyba gdzieś czytałem że paint() to taka metoda domyślna jak
toString(). Rozumiesz o co chodzi?
3 lis 15:51
adam: No nie wiem, masz na myśli zwracanie nazwy klasy? Przeciążanie metod?
3 lis 15:54
Dziadek Mróz:
Nie, że jak masz klasę jakąś i chcesz ją wyświetlić:
MyClass myClass1 = new MyClass();
print(MyClass);
to w MyClass jest metoda toString(), która zwróci string dla myClass1
Tak samo jak masz:
TextField textField1 = new TextField("PT", 1);
add(textField1);
to TextField ma metodę print(), która wyrysuje grafikę dla textField1 na innym
kontenerze
3 lis 15:59
adam: aha, rozumiem. chyba coś w tym jest.
Dobra zastanowię się nad tym jeszcze dzisiaj. Muszę już lecieć.
3 lis 16:01