Also ich habe folgendes Problem: Ich habe mindestens 6 Panels, die sich in vielen Eigenschaften sehr gleichen und nicht ganz trivial sind, also nur 2-3 Zeilen Code sind.
Ich möchte nun mit einer Methode getSubPanel sozusagen das Gerüst dieser Panels erstellen lassen. Was auch wunderbar klappt. (code steht weiter unten)
Nur wie kann ich jetzt zum Beispiel nachträglich Buttons usw. in das Gerüst einbauen? Ich will ja nicht direkt in das Subanel schreiben, sondern in weitere Unterpanels wie zum Beispiel buttonPanel. Ich bräuchte also ungefähr sowas:
Gibt es da ne einfache Lösung? Also schon eine Funktion um auf die Unterkomponenten zugreifen zu können? Muss ich dafür ne eigenen Klasse schreiben anstatt der Funktion hier?
Ich möchte nun mit einer Methode getSubPanel sozusagen das Gerüst dieser Panels erstellen lassen. Was auch wunderbar klappt. (code steht weiter unten)
Nur wie kann ich jetzt zum Beispiel nachträglich Buttons usw. in das Gerüst einbauen? Ich will ja nicht direkt in das Subanel schreiben, sondern in weitere Unterpanels wie zum Beispiel buttonPanel. Ich bräuchte also ungefähr sowas:
Java:
JPanel myPanel = getSubPanel();
JButton button = new JButton("button");
myPanel.buttonPanel.add(button);
bzw.
myPanel.getSubPanel("buttonPanel").add(button);
Gibt es da ne einfache Lösung? Also schon eine Funktion um auf die Unterkomponenten zugreifen zu können? Muss ich dafür ne eigenen Klasse schreiben anstatt der Funktion hier?
Java:
private static JPanel getSubPanel() {
JPanel titlePanel = new JPanel();
titlePanel.setPreferredSize(new Dimension(0, 30));
titlePanel.setLayout(new BorderLayout());
JPanel contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout());
JPanel leftPanel = new JPanel();
leftPanel.setLayout(new GridBagLayout());
leftPanel.setBackground(Color.BLUE);
JPanel rightPanel = new JPanel();
rightPanel.setLayout(new BorderLayout());
rightPanel.setPreferredSize(new Dimension(200, 0));
rightPanel.setBackground(Color.RED);
JLabel informationPanelText = new JLabel("informationPanel");
JLabel buttonPanelText = new JLabel("buttonPanel");
JLabel titlePanelText = new JLabel("titlePanel");
JLabel contentPanelText = new JLabel("contentPanel");
JPanel wrapper = new JPanel();
wrapper.setLayout(new BorderLayout());
// add some text for debugging
leftPanel.add(informationPanelText);
rightPanel.add(buttonPanelText);
titlePanel.add(titlePanelText);
contentPanel.add(contentPanelText);
contentPanel.add(leftPanel, BorderLayout.CENTER);
contentPanel.add(rightPanel, BorderLayout.EAST);
wrapper.add(titlePanel, BorderLayout.NORTH);
wrapper.add(contentPanel, BorderLayout.CENTER);
return wrapper;
}