JMenuBar und Hintergrund eines Frames

darkeye2

Bekanntes Mitglied
Hallo,

ich habe einen JFrame, denn ich mit folgender funktion auf fullsize bringe:

Java:
void mkFull(Window myWindow){
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		GraphicsDevice myDevice = ge.getDefaultScreenDevice();
		myDevice.setFullScreenWindow(myWindow);
	}

danach wird der hintergrund blau:

Java:
Color backColor = new Color(051,000,255);
		this.getContentPane().setBackground(backColor);

so, soweit so gut, nun kommt mein Problemfall, ich will eine menubar haben, und erstell mir auch eine, doch diese wrd nicht vollständig angezeigt, sondern nur da, wo ein JMenu da ist, der rest ist einfach nicht da, das heißt, da wo die verlaufen sollte, wird nur der blaue hintergrund angezeigt. Wenn ich nun per windowstaste oder taskmanager das mal minimiere und dann wieder öffne, ist diese voll da, woran kann das liegen?

meine andere Frage ist, wie schaffe ich das, dass meine JMenuBar höcher wird?

ganzer code:
Java:
public class Gui extends JFrame {
	private static final long serialVersionUID = 9159521797984936459L;
	
	JFrame panel;
	
	Gui(){
		super();
		
		//eigenschaften des fensters
		panel = this;
		this.setTitle("Mathematik Trainer");
		this.setFocusable(true);
		this.setUndecorated(true);
		this.setName("Mathematik Trainer");
		mkFull(this);
		JMenuItem test =  new JMenuItem("Exit");
		test.addActionListener(new ActionListener(){public void  actionPerformed(ActionEvent e){panel.dispose();}});
		JMenuBar menubar = new JMenuBar();
		JMenu file = new JMenu("file");
		file.add(test);
		menubar.add(file);
		
		Color backColor = new Color(051,000,255);
		this.getContentPane().setBackground(backColor);
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		this.setJMenuBar(menubar);
		
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		menubar.setSize(new Dimension((int) dim.getWidth(),300));
		this.pack();
		this.setVisible(true);
		
		menubar.setVisible(true);
		
	}
	
	//Fullscreen erzeugen
	void mkFull(Window myWindow){
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		GraphicsDevice myDevice = ge.getDefaultScreenDevice();
		myDevice.setFullScreenWindow(myWindow);
	}

}

Danke im Vorraus.
MfG
darkeye
 
Ohne es jetzt wirklich zu wissen:
Vllt. liegt`s an der Aufrufreihenfolge? Probiere doch mal erst ganz am Ende des Konstruktors in den Fullscreen-Modus zu wechseln? Und/Oder wie im Beispiel nach [c]myDevice.setFullScreenWindow(myWindow);[/c] mal [c]validate();[/c] aufrufen?

Und was sollen die Thread.sleep, haben die einen bestimmten Grund ;/

meine andere Frage ist, wie schaffe ich das, dass meine JMenuBar höcher wird?

Mhm ???:L
 
also das mit dem Thread.sleep hat keinen ersichtlichen grund, aber wenn ich das weglasse, wird das fenster einfach nicht blau^^ , weiß auch nicht, woran das liegt, hab mal ausprobiert, und so ging es, seit dem ist es drin (das andre probem war aber auch schon vorher da).

hab jetzt das validate(); drin, und hab auch probiert die reihenfolge mal zu ändern, hat nix gebracht, trotzdem Danke
 

Zurück
Oben