Hallo,
also ich ab da ein kleines Problem. In unten angehängter Klasse erstelle ich einen JFrame in den ich dann mehrere JPanels einfüge die über die aufgerufenen Klassen (die jeweils von JPanel erben) erstellt werden. Das klappt so auch…Auf jeden Fall bekomm ich den JFrame mit den JPanels angezeigt ;-).
Allerdings sollen die eingegebenen Daten halt auch irgendwo gespeichert werden…Dafür wollte ich halt die ganzen Components an meine ButtonPanel-Klasse bzw. dann weiter an den ActionListener geben. Hier kommt jetzt mein Problem.
ich bekomme es einfach nicht hin, dass ich dann auf die einzelnen Components der JPanels zugreifen kann.
Ich hab zum reproduzieren des Problems einfach mal die Methode test erstellt, der ich einfach ein JPanel übergeben habe. Leider ist das Array fields…LEER :eek:.
Ich befürchte, dass ich einfach nur einen ganz blöden Denkfehler irgendwo hab…
Danke im Voraus.
import java.awt.Component;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DiveLogGUI {
JFrame diveLogFrame;
public DiveLogGUI() {
diveLogFrame = new JFrame("DiveLog");
diveLogFrame.setLayout(new GridLayout(3, 2));
DiveLocationPanel diveLocationPanel = new DiveLocationPanel();
diveLogFrame.add(diveLocationPanel.createDiveLocationPanel());
WaterPanel waterPanel = new WaterPanel();
diveLogFrame.add(waterPanel.createWaterPanel());
DivePanel divePanel = new DivePanel();
diveLogFrame.add(divePanel.createDivePanel());
DiveEquipmentPanel diveEquipmentPanel = new DiveEquipmentPanel();
diveLogFrame.add(diveEquipmentPanel.createDiveEquipmentPanel());
JPanel dummyPanel = new JPanel();
diveLogFrame.add(dummyPanel);
ButtonPanel buttonPanel = new ButtonPanel();
diveLogFrame.add(buttonPanel.createButtonPanel(diveLogPanels));
diveLogFrame.setSize(800, 800);
diveLogFrame.setVisible(true);
diveLogFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
diveLogFrame.pack();
test(diveLocationPanel);
}
public void test(JPanel diveLocationPanel){
Component[] fields = diveLocationPanel.getComponents();
for(Component field : fields){
System.out.println(field.getName());
}
}
}