När jag försöker maximera en JFrame i windows, antingen i kod eller via ikonen, så blir fönstret alldeles för stort och lägger sig över taskbaren. Hur kan man undvika detta? Okej kommit lite närmare på vägen, fönstret täcker endast taskbaren om jag har kört det här i början av programmet "JFrame.setDefaultLookAndFeelDecorated(true);"... Detta funkade för mig när man hade JFrame.setDefaultLookAndFeelDecorated(true); Denna fungerar nog bättre.. Problemet är att även om det inte täcker taskbaren så är fönstret inte maximerat... men det funkar ju att använda som nödlösning om jag inte kan hitta någon annan...Maximera JFrame
Jag har testat både med jvm 1.4.2_4 och 1.5 beta 2 och får samma problem oavsett...
När jag maximerar i kod så använder jag: setExtendedState(getExtendedState() | Frame.MAXIMIZED_BOTH);Sv: Maximera JFrame
Sv: Maximera JFrame
private static void sizeScreen(JFrame frame) {
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
GraphicsConfiguration config = frame.getGraphicsConfiguration();
Insets insets = kit.getScreenInsets(config);
screenSize.width -= (insets.left + insets.right);
screenSize.height -= (insets.top + insets.bottom);
frame.setSize(screenSize);
frame.setLocation(insets.left, insets.top);
}
Sv: Maximera JFrame
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
setSize(bounds.width, bounds.height);
Sv: Maximera JFrame
[Edit]
Använde mig av ditt exempel och gjorde det här, bästa sättet jag har hittat som åtgärdar det här problemet.
<code>
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
this.setMaximizedBounds(env.getMaximumWindowBounds());
this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);
</code>
[/Edit]