PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWING Fenster maximieren - aber oberhalb der Windows Taskleiste



Pfanni
20-02-2005, 12:14
Hallo,

ich suche nach einer Möglichkeit in einer SWING Applikation den "Maximieren-Button" vom Fenster so zu konfigurieren, dass das maximierte Fenster zwar maximiert aber oberhalb der Taskleiste von Windows bleibt. Im Moment wird das Fenster auf den ganzen Bildschirm maximiert und überlagert die Taskleiste. Die soll aber sichtbar bleiben.
Habe euch mal ein lauffähiges Grundgerüst meiner Swing Applikation hier mit gepostet. Da muss nun irgendwie eine Änderung rein, nur wo und was?
Danke.



import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class GUI extends JPanel
{
private JLabel labelText;
private JFrame frame;



public GUI(JFrame frame)
{
super(new BorderLayout());

this.frame = frame;

labelText = new JLabel("hier steht halt irgendwas ;-)", JLabel.CENTER);
add(labelText, BorderLayout.SOUTH);
}

private static void createAndShowGUI() {

//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//JDialog.setDefaultLookAndFeelDecorated(true);

//Create and set up the window.
JFrame frame = new JFrame("ImageRotator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);


//Set up the content pane.
Container contentPane = frame.getContentPane();
contentPane.setLayout(new GridLayout(1,1));

GUI GUIClass = new GUI(frame);
contentPane.add(GUIClass);

//Display the window.
frame.pack();
frame.setSize(1024, 768);

frame.setLocationRelativeTo(null); //program window starts centred

frame.setVisible(true);

}

public static void main(String[] args) {

javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}



Gruß
Pfanni

anda_skoa
21-02-2005, 13:39
Hmm, klingt eher nach einem Fehler irgendwo tiefer (vielleicht in der JVM Implementation)
Ansich sollte das Maximieren aus der Fensterdekoration Fenster wie den Taskbar nie überschneiden, dafür gibt es ja "Fullscreen".

Ciao,
_

Pfanni
21-02-2005, 13:52
ich hatte in meinem Code alles drinnen was nötig war, nur die Reihenfolge hat nicht gestimmt.

mit folgendem Code gings nicht:

JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("ImageRotator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);


damit geht's nun:
(der Rest vom Code ist unverändert zu meinem Ursprungsposting)

JFrame frame = new JFrame("ImageRotator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
JFrame.setDefaultLookAndFeelDecorated(true);


Gruß
Thomas

rumbero2005
28-11-2005, 13:44
Ich habe auch eine Weile gesucht und mit folgendem Aufruf Erfolg:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

Viel Erfolg,
Manfred