Java JMenuBar unter Oracle und OpenJDK

Piktogramm

Admiral
Registriert
Okt. 2008
Beiträge
8.859
Servus,

der unten eingefügte Quelltext funktioniert unter Windows mit OracleJava JDK/JRE genau so wie er soll. Es wird ein Fenster geöffnet, dieses besitzt eine Menübar mit einem Eintrag, in dem sich wiederum der Eintrag "Item1" befindet. Unter Linux mit OpenJDK8 öffnet sich nur das Fenster, ohne Menübar.
Die Frage ist also, wie schaut die Lösung aus, dass sie unter OpenJDK und Oracle funktioniert?
Danke für eure Hilfe

Code:
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class Frame extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Frame frame = new Frame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Frame() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 1024, 768);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnNewMenu = new JMenu("New menu");
		menuBar.add(mnNewMenu);
		
		JMenuItem mntmItem = new JMenuItem("item1");
		mnNewMenu.add(mntmItem);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
	}

}
 
Du benutzt nicht zufällig Ubuntu mit Unity und hast daher die MenuBar ganz oben am Bildschirm, statt am Fenster?
 
Das war wirklich die Lösung des Problems. DANKE! Ich kann jetzt wesentlich beruhigter schlafen gehen. In dem ruhigen Wissen, dass ich mir dass jetzt gut 1-2Wochen vorhalten lassen darf :)
 

Ähnliche Themen

Zurück
Oben