Anzeige:
Ergebnis 1 bis 4 von 4

Thema: SWING Fenster maximieren - aber oberhalb der Windows Taskleiste

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.10.2002
    Beiträge
    23

    SWING Fenster maximieren - aber oberhalb der Windows Taskleiste

    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.

    Code:
    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_CLOSE); 
    
           
            //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

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.10.2002
    Beiträge
    23
    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

  4. #4
    rumbero2005
    Gast

    Exclamation setExtendedState

    Ich habe auch eine Weile gesucht und mit folgendem Aufruf Erfolg:

    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

    Viel Erfolg,
    Manfred

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •