Problem mit (Un)Sichtbarkeit von Komponenten

  • Themenstarter Themenstarter Zottel
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
Z

Zottel

Gast
Guten Morgen,
ich sitze schon die halbe Nacht an folgenden Schnippselchen:

Code:
import javax.swing.*;
import java.awt.*;


public class GUI extends JFrame {
	JLabel top = new JLabel("test");
	JPanel content = new JPanel();
	
	public GUI(String titel) {	
		super(titel);
		TopMenu menu = new TopMenu();
		setJMenuBar(menu);
		menu.setVisible(true);
		Container panel = getContentPane();
		panel.setLayout(new BorderLayout());
		panel.add("North", top);
		panel.add("South", content);
	}
	
	public static void main(String[] args) {
		GUI fenster = new GUI("Fenstertitel");
		fenster.pack();
		fenster.setSize(500, 300);
		fenster.setVisible(true);
	}
}

Die Menüklasse:
Code:
import javax.swing.*;
import java.awt.event.*;

public class TopMenu extends JMenuBar implements ActionListener {
	public TopMenu() {
		JMenuBar menu = new JMenuBar();
		
		JMenu menu1 = new JMenu("Programm");
		JMenuItem p_item1 = new JMenuItem("Beenden");
		p_item1.setActionCommand("exit");
		p_item1.addActionListener(this);
		menu1.add(p_item1);
		
		JMenu menu2 = new JMenu("Verwalten");
		JMenuItem v_item1 = new JMenuItem("Personal");
		v_item1.setActionCommand("pers");
		v_item1.addActionListener(this);
		menu2.add(v_item1);
		JMenuItem v_item2 = new JMenuItem("Kunden");
		v_item2.setActionCommand("kd");
		v_item2.addActionListener(this);
		menu2.add(v_item2);
		
		menu.add(menu1);
		menu.add(menu2);
	}
usw.

Das Testlabel ist sichtbar, alles andere leider nicht. Ich komm einfach nicht drauf, warum. Weiß jemand Rat? 🙁
 
So. Hab etz mal getestet.

Es funktioniert, wenn du die JMenuBar dinge nicht auslagerst...

Ich denk es liegt daran, dass du ja TopMenu von JMenuBar erben lässt und dann innerhalb von der JMenuBar nochmal ne neue JMenuBar anlegst...

Vllt geht es, wenn du das lässt... also quasi in der TopMenu statt menu.bla this.bla machst...
 
Gerade auf das Auslagern lege ich besonderen Wert 😉
Aber, dass ich wie du schreibst ne neue JMenuBar anlege, scheint tatsächlich das Problem gewesen zu sein. So läufts:
Code:
public class TopMenu extends JMenuBar implements ActionListener {
   public TopMenu() {
      //JMenuBar menu = new JMenuBar();
      
      JMenu menu1 = new JMenu("Programm");
      JMenuItem p_item1 = new JMenuItem("Beenden");
      p_item1.setActionCommand("exit");
      p_item1.addActionListener(this);
      menu1.add(p_item1);
      
      JMenu menu2 = new JMenu("Verwalten");
      JMenuItem v_item1 = new JMenuItem("Personal");
      v_item1.setActionCommand("pers");
      v_item1.addActionListener(this);
      menu2.add(v_item1);
      JMenuItem v_item2 = new JMenuItem("Kunden");
      v_item2.setActionCommand("kd");
      v_item2.addActionListener(this);
      menu2.add(v_item2);
      
      this.add(menu1);
      this.add(menu2);
   }


Vielen Dank für deine Hilfe & Bemühung :toll:
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben