matematykaszkolna.pl
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: rysunek 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