MenuBar

Apon

Mitglied
Hallo!

Hänge an folgendem Problem. Habe zwei Klassen. Für jede der zwei Klassen habe ich mit Hilfe des Disgners eine grafische Oberfläche erstellt. Nun versuche ich über MenuBar (in Klasse1) ein Panel aus Klasse2 in Klasse1 sichtbar zu machen. Ist das überhaupt möglich, wenn ja wie?

Hier Klasse1:
Code:
package paket;
 
import java.awt.*;
import java.awt.event.*;
...
 
public class Klasse1 extends Frame implements ActionListener {
 
Klasse2 klasse2 = new Klasse2();
Panel panelKlasse1 = new Panel();
Panel panel2 = new Panel();
CardLayout cardLayout1 = new CardLayout();
Panel panelFront = new Panel();
BorderLayout borderLayout1 = new BorderLayout();
...
public Klasse1() {
 
	try {
	 jbInit();
	}
	catch (Exception e) {
	 e.printStackTrace();
	}
	MenuBar mb = new MenuBar();
	setMenuBar(mb);
	Menu datei = new Menu("Datei");
	datei.add("Neu");
	datei.add("Exit");
	mb.add(datei);
	datei.addActionListener(this);
	Menu klassen = new Menu("Klassen");
	klassen.add("Klasse1");
	klassen.add("Klasse2");
	mb.add(Klassen);
	klassen.addActionListener(this);
}
...
 
public void actionPerformed(ActionEvent e) throws IllegalArgumentException {
	...
	if (e.getActionCommand().equals("Klasse1")) {
	 cardLayout1.show(panel2, "panelKlasse1"); // <--- funktioniert
	}
	if (e.getActionCommand().equals("Klasse2")) {
	 cardLayout1.show(klasse2.panel1, "panelKlasse2");		 // <-- bei diesem Eintrag: IllegalArgumentException
	 klasse2.cardLayout1.show(klasse2.panel1, "panelKlasse2"); // <-- hier passiert gar nix
	}
	...
 
}
...
 
private void jbInit() throws Exception {
 
	this.setLayout(borderLayout1);
	this.setBackground(new Color(230, 216, 170));
	panelKlasse1.setLocale(java.util.Locale.getDefault());
	panelKlasse1.setLayout(null);
	panel2.setLocale(java.util.Locale.getDefault());
	panel2.setLayout(cardLayout1);
	panelFront.setLocale(java.util.Locale.getDefault());
	panelFront.setLayout(null);
	panel2.add(panelFront, "panelFront");
	panel2.add(panelKlasse1, "panelKlasse1");
	this.add(panel2, BorderLayout.CENTER);
	...
 
}
...
 
}

Hier Klasse2:
Code:
package paket;
 
import java.awt.*;
...
 
public class Klasse2 extends Frame {
 
Panel panelKlasse2 = new Panel();
BorderLayout borderLayout1 = new BorderLayout();
Panel panel1 = new Panel();
CardLayout cardLayout1 = new CardLayout();
...
 
public Klasse2() {
 
	try {
	 jbInit();
	}
	catch (Exception e) {
	 e.printStackTrace();
	}
}
...
 
private void jbInit() throws Exception {
 
	panelKlasse2.setLayout(null);
	this.setLayout(borderLayout1);
	panel1.setLayout(cardLayout1);
	this.add(panel1, BorderLayout.CENTER);
	panel1.add(panelKlasse2, "panelKlasse2");
	...
 
}
...
 
}

Danke im Voraus.

Gruß Jens
 
Guuude!

Hab' den Fehler gefunden. in Klasse1 hat folgender Eintrag gefehlt:

Code:
...
 
private void jbInit() throws Exception {
	...
 
	panel2.add(klasse2.panelKlasse2, "panelKlasse2");
	...
 
}
...

Man muss wohl doch genau hinsehen, was man schreibt. Java programmiert sich noch nicht von allein.

Sorry für die Frage.

Gruß Jens
 
Zurück