JPanel a Container

Odpowiedz Nowy wątek
2006-08-30 20:37
ociec
0

bardzo proszę o pomoc, piszę pracę magisterską i czas mnie goni, ale przejdę do tematu:

zrobiłem kilka formularzy do dodawania danych do bazy, np. formularz do dodawania klienta. na JPanel wrzuciłem JTextField'y z których pobieram dane, po dodaniu do bazy chciałbym czyścić wszystkie JTextField'y, będzie tego bardzo dużo w całej aplikacji więc chciałem napisać uniwersalną funkcję która w parametrze dostaje obiekt typu JPanel i wyszukuje wszystkie JTextFieldy i je czyści, oto moja funkcja:

    private void clearForm(Container form) {
        Component[] inputs = form.getComponents();
        for (int i=0; i<inputs.length; i++) {
            if (inputs[i].getClass().getName().indexOf("JTextField") != -1)
                try {
                    inputs[i].setText("");
                }
                catch (Exception e) {
                }
        }
    }

wywołanie:
clearForm(KlientNazwa.getParent());
gdzie KlientNazwa to JTextField.
kompilacja wywala się na inputs[i].setText(""); ponieważ nie wie że to JTextField a klasa Component nie ma metody setText(). jak rozwiązać ten problem?

Pozostało 580 znaków

2006-08-30 20:55
0

Tablica inputs to tablica obiektów klasy Component, więc nie możesz wywołać nieistniejącej metody setText(). Aby to zrobić musisz wykonać rzutowanie, np tak:
((JTextField)inputs[i]).setText("");


Pozostało 580 znaków

2006-08-30 20:59
ociec
0

dziękuję bardzo :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0