Witam mam 3 klasy posiadające różne pola
class A
class B extends A
class C extends B
tworze Gui z pól ktore sa prywatne ale tylko z danej klasy nie pobiera mi pól z klasy nadrzędnej.
Szukałem na forum nawet znalazłem Java refleksja i ustawienia wszystkich pól
ale nie potrafie tego zastosować do mojego kodu
Pola w klasie
private Class<?> Bcc;
private Class<?> Acc;
private Class<?> Ccc;
przypisanie nadrzednych klas
Klasa DaneFirmy jest najniżej w dziedziczeniu
DaneFirmy object = new DaneFirmy();
Ccc = object.getClass();
Bcc = Ccc.getSuperclass();
Acc = Bcc.getSuperclass();
Po zaznaczeniu JCheckBox wykonuje kod ktory dla jednej klasy pobiera pola ale dla nadrzędnej juz nie
private class CheckBoxHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if(isKlientFirmowy.isSelected()==true){
Field[] pola = dodajUzytkownikaGui.this.Ccc.getDeclaredFields();
dodajUzytkownikaGui.this.panel.removeAll();
dodajUzytkownikaGui.this.panel.setLayout(new GridLayout(pola.length+1, 2));
for(Field f : pola){
dodajUzytkownikaGui.this.panel.add(new JLabel(f.getName()));
dodajUzytkownikaGui.this.panel.add(new JTextField());
}
dodajUzytkownikaGui.this.panel.add(new JLabel("Klient firmowy"));
dodajUzytkownikaGui.this.panel.add(isKlientFirmowy);
dodajUzytkownikaGui.this.panel.repaint();
pack();
}
}
}
gdy zmieniam Acc->Bcc->Ccc to wypisuje pola z przypisanej klasy
lub gdy zmieniam getDeclaredFields() -> getFields() to nie wypisuje wcale chyba dlatego ze są tylko prywatne pola w klasie
Field[] pola = dodajUzytkownikaGui.this.Ccc.getDeclaredFields();
Field[] pola = dodajUzytkownikaGui.this.Bcc.getDeclaredFields();
Field[] pola = dodajUzytkownikaGui.this.Acc.getDeclaredFields();
Z góry dziekuje za pomoc