Swing MenuBar als eigene Klasse

chnooorzi

Mitglied
Hallo

Bin ein Java-Anfänger und spiele zur Zeit ein wenig mit Swing.
Ich möchte meine MenuBar als eigenständige Klasse machen.
Leider funktioniert dies bei mir nicht.
Ich habe 3 Klassen: MenuTestViewer, MenuTestFrame & MenuBar.
Java:
import javax.swing.JFrame;

public class MenuTestViewer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		JFrame frame = new MenuTestFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setTitle("Bill");
		frame.setVisible(true);

	}

}

Java:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class MenuTestFrame extends JFrame{
	
	private static final int FRAME_WIDTH = 300;
	private static final int FRAME_HEIGHT = 400;

	private JLabel label1;
	
	private JMenuBar menuBar;
	private JMenu fileMenu;
	private JMenuItem menuItem;
	
	public MenuTestFrame() {
		// TODO Auto-generated constructor stub

		label1 = new JLabel("Hallo");
		add(label1);
		
		JMenuBar menuBar = new MenuBar();
		
		//menuBar = new JMenuBar();
		//fileMenu = new JMenu("File");
		//menuItem = new JMenuItem("Exit");
		//fileMenu.add(menuItem);
		//menuBar.add(fileMenu);
		
		setJMenuBar(menuBar);
		
		setSize(FRAME_WIDTH, FRAME_HEIGHT);	
	}

}

Java:
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class MenuBar  extends JMenuBar{

	private JMenuBar menu;
	private JMenu fileMenu;
	private JMenuItem menuItem;
	
	public MenuBar() {
		// TODO Auto-generated constructor stub
		menu = new JMenuBar();
		
		fileMenu = new JMenu("File");
		menuItem = new JMenuItem("Exit");
		fileMenu.add(menuItem);
		menu.add(fileMenu);
	}
	
}

Wenn ich in der MenuTestFrame - Klasse genau das selbe definiere wie in der MenuBar-Klasse
funktioniert es (das ausgeklammerte unter: JMenuBar menuBar = new MenuBar();)
Hat jemand einen Tipp?
Macht es überhaupt Sinn das Menü in einer eigenen Klasse zu definieren?

Danke

Freundliche Grüsse
chnooorzi
 

eRaaaa

Top Contributor
Bevor du dich mit Swing beschäftigst solltest du dir die Grundlagen von Java und speziell OOP aneignen.
Zeilen 13 und 18 machen keinen Sinn in deiner MenuBar Klasse, wieso erstellst du dort noch einmal eine MenuBar? Die Instanz selbst ist doch schon eine!

->
Java:
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
 
public class MenuBar  extends JMenuBar{
 
    private JMenu fileMenu;
    private JMenuItem menuItem;
    
    public MenuBar() {
        // TODO Auto-generated constructor stub
        fileMenu = new JMenu("File");
        menuItem = new JMenuItem("Exit");
        fileMenu.add(menuItem);
        this.add(fileMenu);
    }
    
}

Probier`s mal eher so (this.add(fileMenu) und Zeile 13 und 7 löschen!)
 
Zuletzt bearbeitet:

chnooorzi

Mitglied
Hallo

Danke für die rasche Antwort.
Hat so geklappt.

Werde mich dann noch einmal hinter die Grundlagen setzen.
Macht es den überhaupt Sinn eine eigene Klasse für das Menü zu machen?
Klar bei ein,zwei Menüitems nicht, aber bei grösseren ist es sinnvoll oder irre
ich mich?

Gruss
 

eRaaaa

Top Contributor
Man erbt dann aber normalerweise nicht, denn du erweiterst ja so gesehen keine Funktionen von MenuBar. Man würde dann eher so vorgehen wie du es schon gemacht hattest, sprich dann ein neues Objekt von JMenuBar in deiner eigener Klassen erzeugen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
emma_louisa JavaFX MenuBar Zweitfenster; bei Button "Abbrechen" nur das Zweitfenster schließen AWT, Swing, JavaFX & SWT 2
C SWT MenuBar & MenuItems Fokus wenn F10 unterdrücken/entfernen AWT, Swing, JavaFX & SWT 9
S JavaFX MenuItem in hoher (height größer) MenuBar vertikal zentrieren AWT, Swing, JavaFX & SWT 4
M JavaFX MenuBar und Camera zusammen verwenden AWT, Swing, JavaFX & SWT 2
D Apple MenuBar Eintrag "java" AWT, Swing, JavaFX & SWT 15
B Doppelte MenuBar -> Nach Minimieren verschwunden AWT, Swing, JavaFX & SWT 3
E JavaFX MenuBar und ToolBar zu einem Bereich AWT, Swing, JavaFX & SWT 3
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
O MenuBar wird nicht angezeigt AWT, Swing, JavaFX & SWT 0
A JavaFX Menubar wird von Canvas überzeichnet AWT, Swing, JavaFX & SWT 8
C Swing Menubar Close, Minimize, Maximize button AWT, Swing, JavaFX & SWT 7
H Timer/Stoppuhr in MenuBar anzeigen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
F Swing MenuBar wird verdeckt AWT, Swing, JavaFX & SWT 2
S Vereinen von zwei MenuBar AWT, Swing, JavaFX & SWT 3
P jMenu ohne Menubar - Jigloo zeigts AWT, Swing, JavaFX & SWT 2
G MenuBar selectieren AWT, Swing, JavaFX & SWT 9
C menubar border AWT, Swing, JavaFX & SWT 2
R Menubar wird auf Mac OS X nicht angezeigt AWT, Swing, JavaFX & SWT 5
M CoolBar, MenuBar und StatusLine aktualisieren AWT, Swing, JavaFX & SWT 2
T Menubar Problem AWT, Swing, JavaFX & SWT 2
R Menubar immer updaten! AWT, Swing, JavaFX & SWT 9
P MenuBar über Canvas AWT, Swing, JavaFX & SWT 2
T Shortcut für Eintrag aus MenuBar AWT, Swing, JavaFX & SWT 3
M icons im menubar ? AWT, Swing, JavaFX & SWT 5
M eigene GUI Bibliothek erstellen. AWT, Swing, JavaFX & SWT 10
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
L JavaFX Eigene Font benutzen AWT, Swing, JavaFX & SWT 6
B Notepad++ in die eigene GUI einbinden AWT, Swing, JavaFX & SWT 7
B JavaFX Bild um die eigene Achse drehen lassen AWT, Swing, JavaFX & SWT 0
M Eigene Klasse mit Grafikobjekten schreiben AWT, Swing, JavaFX & SWT 4
S JavaFX Drehen um eigene Achse AWT, Swing, JavaFX & SWT 2
P X extends TreeView - eigene Methoden AWT, Swing, JavaFX & SWT 5
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
L Eigene Component anordnen AWT, Swing, JavaFX & SWT 7
L JavaFX Eigene JavaFX Controls anlegen AWT, Swing, JavaFX & SWT 1
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
J Eigene Klasse auf Basis Textfield in SceneBuilder anzeigen AWT, Swing, JavaFX & SWT 4
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4
L Eigene JComponent in GridLayout AWT, Swing, JavaFX & SWT 9
A JavaFX Scene Builder eigene Klasse hinzufügen AWT, Swing, JavaFX & SWT 2
L Swing Wie programmiere ich eine eigene GUI? AWT, Swing, JavaFX & SWT 12
T Swing Eigene Konsole AWT, Swing, JavaFX & SWT 5
D Swing Eigene Tabelle AWT, Swing, JavaFX & SWT 18
M eigene horizontale Scrollbar AWT, Swing, JavaFX & SWT 1
M JavaFX Scenebuilder eigene Komponenten AWT, Swing, JavaFX & SWT 8
A JavaFX Eigene Komponenten im Scene Builder AWT, Swing, JavaFX & SWT 0
J JavaFX Eigene ListCell Problem(Objekte werden doppelt angezeigt) AWT, Swing, JavaFX & SWT 1
A Swing Eigene JComponent Scrollable AWT, Swing, JavaFX & SWT 6
Kenan89 3D Models aus anderen Spielen in eigene einfügen AWT, Swing, JavaFX & SWT 3
R SWT Eigene Events erstellen und werfen AWT, Swing, JavaFX & SWT 59
P Eigene CMD GUI zum Starten von JAR AWT, Swing, JavaFX & SWT 10
M Swing eigene Dialoge, aber wie genau? AWT, Swing, JavaFX & SWT 5
S Eigene JComponent Image zeichnen AWT, Swing, JavaFX & SWT 3
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
K 3D-Grafik Eigene "Kamera" AWT, Swing, JavaFX & SWT 2
T eigene Klasse für Panel AWT, Swing, JavaFX & SWT 9
S Swing Eigene Komponente (JPanel) soll ChangeEvents verteilen AWT, Swing, JavaFX & SWT 12
E LookAndFeel Eigene Komponenten mit Synth L&F stylen AWT, Swing, JavaFX & SWT 2
alderwaran Swing XML editor plugin für eigene anwendung AWT, Swing, JavaFX & SWT 2
P Swing Eigene Komponente Entwickeln - erben von JComponent oder JPanel? AWT, Swing, JavaFX & SWT 5
B Eigene Methoden in TABs einfügen AWT, Swing, JavaFX & SWT 8
R eigene Methoden für Buttons? AWT, Swing, JavaFX & SWT 11
H Swing Eigene Komponente wird nur halb oder komisch angezeigt AWT, Swing, JavaFX & SWT 3
H Swing Eigene Komponente reagiert falsch auf mouseClicked() AWT, Swing, JavaFX & SWT 5
T Eigene JComponent AWT, Swing, JavaFX & SWT 4
L Eigene Design Oberfläche erstellen AWT, Swing, JavaFX & SWT 3
1 Eigene Component in JScrollBar + fixe Linien??? AWT, Swing, JavaFX & SWT 2
T SWT eigene Komponenten AWT, Swing, JavaFX & SWT 2
Kr0e Allgemeine Frage zu Java2D (Eigene Impl.) AWT, Swing, JavaFX & SWT 18
A Eigene StatusBar AWT, Swing, JavaFX & SWT 2
1 Eigene JComponent mit MouseListener versehen AWT, Swing, JavaFX & SWT 10
S Eigene GUI Elemente erstellen AWT, Swing, JavaFX & SWT 6
D Eigene Methode soll Gerade zeichnen AWT, Swing, JavaFX & SWT 5
D Swing Eigene Komponente mit JSpinner AWT, Swing, JavaFX & SWT 4
MrMilti eigene Klasse in JTable ablegen AWT, Swing, JavaFX & SWT 12
R Swing JTable: Eigene Zeichnung im Header AWT, Swing, JavaFX & SWT 11
A Eigene Border für Buttons AWT, Swing, JavaFX & SWT 19
A Eigene Buttons AWT, Swing, JavaFX & SWT 20
C JTextPane HTML und eigene Tags AWT, Swing, JavaFX & SWT 10
S Eigene GUI (evt. Toolkit) AWT, Swing, JavaFX & SWT 10
M SWT: eigene Events AWT, Swing, JavaFX & SWT 9
& eigene Schriftart in JEditorpane AWT, Swing, JavaFX & SWT 2
T Eigene Fenster kreieren?zb. wie bei Winamp? AWT, Swing, JavaFX & SWT 9
D Eigene Component erstellen? AWT, Swing, JavaFX & SWT 4
F eigene Swing-Komponente. Drehregler AWT, Swing, JavaFX & SWT 4
M Eigene Klasse für mehrer JSplitPanes AWT, Swing, JavaFX & SWT 3
M Eigene Komponenten basteln AWT, Swing, JavaFX & SWT 25
O Eigene GUI Objekte entwerfen? AWT, Swing, JavaFX & SWT 3
A Eigene, sich selbst zeichnende Component AWT, Swing, JavaFX & SWT 5
S Eigene Komponenten AWT, Swing, JavaFX & SWT 2
T Eigene erweiterte MouseEvents nutzen AWT, Swing, JavaFX & SWT 2
M In eigene JPanel Klasse zeichnen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben