Problem Swing: Contentpane wird nicht immer angezeigt

bk99

Grünschnabel
Hi Leuts,

ich habe ein Problem, welches ich nicht nachvollziehen kann: Wenn ich meine Applikation starte, dann wird der JFrame inklusive Toolbar geladen. Die Contentpane die im JFrame liegt, wird aber mal geladen und mal nicht geladen, d.h. der Fehler ist nicht reproduzierbar, sondern tritt unregelmäßig auf.

Auf der Contentpane sind wiederum Panels angelegt, in jedem Bereich eines (Boarderlayout), in denen Buttons und Checkboxen integriert sind. Vielleicht liegt es an der integration von Panels in der Contentpane? Die ist ja auch ein JPanel, oder?

Hat jemand von euch schon ein ähnliches Phänomen bzw. Problem gehabt?

Danke im vorraus!
Ciao.
 
Moin,

sorry, aber den entsprechenden Code kann man nur raten - und meine Glaskugel ist derzeit zur Reparatur ;-]

Poste mal den zugehörigen Code (aber bitte mit Code-Tags - das ist der Button mit der '#' im Editor), dann kann man weitersehen!

Gruß
Klaus
 
Hi danke für die schnelle Antwort!

Das habe ich befürchtet, aber hier die Methoden zur Instanzierung:

Code:
private JFrame getMainFrame() {
		if (mainFrame == null) {
			mainFrame = new JFrame();
			mainFrame.setSize(new Dimension(500, 300));
			mainFrame.setTitle("xxxxxxxxxxxxxxxx");
			mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			mainFrame.setLocation(new Point(300, 200));
			mainFrame.setJMenuBar(getMainMenuBar());
			mainFrame.setContentPane(getContentPane());
			mainFrame.setVisible(true);
		}
		return mainFrame;
	}

private JPanel getContentPane() {
		if (ContentPane == null) {
			ContentPane = new JPanel();
			ContentPane.setLayout(new BorderLayout());
			ContentPane.setPreferredSize(new Dimension(120, 54));
			ContentPane.add(getPanelNorth(), BorderLayout.NORTH);
			ContentPane.add(getButtonPanel(), BorderLayout.WEST);
			ContentPane.add(getPanelSouth(), BorderLayout.SOUTH);
			ContentPane.add(getPanelEast(), BorderLayout.EAST);
		}
		return ContentPane;
	}

private JPanel getButtonPanel() {
		if (buttonPanel == null) {
			labelSeparator = new JLabel();
			labelSeparator.setText("");
			buttonPanel = new JPanel();
			buttonPanel.setLayout(new BoxLayout(getButtonPanel(), BoxLayout.Y_AXIS));
			buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
			buttonPanel.add(getCbXml(), null);
			buttonPanel.add(labelSeparator, null);
			buttonPanel.add(getCbExcel(), null);
			buttonPanel.add(getCbCsv(), null);
		}
		return buttonPanel;
	}

Mit diesen Methoden wird die Contentpane und der MainFrame in der Main-Class über den Aufruf von "getMainFrame()" instanziert bzw. initialisiert. Der Code müsste eigentlich passen. Darum bin ich ja so ratlos. Ich dachte eher an Probleme mit der VM oder ähnliches. P.S. das Projekt habe ich in Eclipse erstellt.

Ciao.
 
Zurück