2017-04-11 1 views
1

Ich möchte einen Rahmen, der maximiert ist und danach die Größenänderung blockieren möchte. Dafür habe ich schrieb den folgenden Code:Rahmen maximieren und Größenänderung deaktivieren

public PaintingWindow() { 
    initComponents(); 
    this.setExtendedState(MAXIMIZED_BOTH); 
    this.setResizable(false); 
} 

Das Problem: Das Fenster ist nicht mehr maximiert wird, wenn ich die setResizeable (false) hinzuzufügen. Ohne es funktioniert es.

Wie kann ich es umgehen? Danke für alle Antworten!

+0

Betrachten wir einen Blick auf Vollbild exklusiven Modus mit – MadProgrammer

+0

Es funktioniert hier (Windows 10, Java 8), mit der von frame.setVisible(true); zu lösen Aufruf von 'setResizable (..)' entweder vor oder nach 'setExtendedState (..)'. Aber dort, probier es andersherum. 'setReiszable (..)' wird das 'chrome' des Fensters ändern (das Wrapping um die Außenseite) und das könnte das Betriebssystem dazu bringen zu denken, dass es vom Vollbild kommen sollte. Allgemeiner: Um eine bessere Hilfe zu erhalten, sollten Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) veröffentlichen. –

Antwort

2

Ich hatte ein ähnliches Problem mit JFrame ich in der Lage war es vor frame.setResizable(false);

JFrame frame = new JFrame("MyFrame"); 
frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
frame.setSize(screenSize); 
frame.setVisible(true); 
frame.setResizable(false); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 
+1

nur zu ändern, das Javadoc von setExtendedState sagt: "Wenn der Rahmen auf dem Bildschirm nicht sichtbar ist, können die Ereignisse erzeugt werden oder nicht. ... Später, wenn die Methode setVisible (true) aufgerufen wird, versucht der Rahmen um diesen Zustand anzuwenden. " - Wenn resizable jedoch vor setVisible false ist, kann der Status nicht angewendet werden. –

+0

Tank Sie für Ihre Antwort! Es funktioniert jetzt! –

Verwandte Themen