carookee - group communication for you
Home / JavaForum / Swing + AWT
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
3.920 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 855 von 1460 (59%) |<   <   >   >|

Autor Thomas Tasior
Datum 17.01.02, 06:49
Betreff Re: ...und noch ne Frage: Fenster maximieren


Das hier:



package fullscreen;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
* Kleine Spielerei zum Thema maximieren eines Anwendungsfensters.
* Funktioniert nur unter Windows und dort nur unter den gängigen
* Fenstereinstellungen (Höhe Titelleiste, Randdicke etc...)
* IM JDK 1.4 ist dieses Problem gelöst.
*
* Bei Fragen, email an:
*
* JDK-Version: mindestens 1.3.
* Author: Thomas Tasior
*/

public class Maximizer
{
    
    /**
    * Maximiert das Fenster aFrame durch generischen Klick
    * der linken Maustaste.
    */

    public static void maximize(JFrame aFrame)
    {
        maximize(aFrame, InputEvent.BUTTON1_MASK, 0);
    }
    
    
    /**
    * Maximiert das Fenster aFrame durch generischen Klick
    * auf einer der drei Maustasten:
    * InputEvent.BUTTON1_MASK => links
    * InputEvent.BUTTON2_MASK => mitte
    * InputEvent.BUTTON3_MASK => rechts
    *
    */

    public static void maximize(JFrame aFrame, int pMouseButton)
    {
        maximize(aFrame, pMouseButton, 0);
    }
    
    /**
    * Die eigentliche Implementierung.
    *
    * Maximiert das Fenster aFrame durch generischen Klick
    * auf einer der drei Maustasten:
    * InputEvent.BUTTON1_MASK => links
    * InputEvent.BUTTON2_MASK => mitte
    * InputEvent.BUTTON3_MASK => rechts
    *
    * Zusätzlich kann noch eine Wartezeit bevor geklickt wird eingegeben werden.
    * diese Methode sollte nur zum Testen benutzt werden.
    *
    * @see java.awt.Robot
    *
    */

    public static void maximize(JFrame aFrame, int aMouseButton, int aSleepTime)
    {
        //Aussenmasse des Frames holen
        Rectangle frameRect = aFrame.getBounds();
        
        //Den für Java zur Verfügung stehenden Platz holen
        Point pRoot = aFrame.getRootPane().getLocation();
        //Mauspositionen berechnen: Maus muss über dem Maximize Button positioniert werden.
        int mouseY = frameRect.y + (pRoot.y / 2) + (pRoot.x / 2);
        int mouseX = (int)(frameRect.x + frameRect.width - (pRoot.y * 1.5) + (pRoot.x / 2));
        
        
        try
        {
            //Er klickt für uns...
            Robot robot = new Robot();
            robot.mouseMove(mouseX, mouseY);//Maus positionieren
            try
            {
                Thread.sleep(aSleepTime);//nur zum testen...
            }
            catch (InterruptedException ex)
            {
            }
            
            robot.mousePress(aMouseButton);//Maus
            robot.mouseRelease(aMouseButton);//klicken
            //Anschliessend Maus in der Mitte des Bildschirms positionieren.
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            robot.mouseMove(screenSize.width / 2, screenSize.height / 2);
            
        }
        catch (AWTException ex)
        {
            //ex.printStackTrace();
            System.out.println("AWTException");
        }
        catch (SecurityException ex)
        {
            //ex.printStackTrace();
            System.out.println("SecurityException");
        }
        catch (AWTError ex)
        {
            //ex.printStackTrace();
            System.out.println("AWTError");
        }
    }
}
//Testklasse

package fullscreen;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class AppFrame extends JFrame
{
    
    public AppFrame()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        setBounds(100,100,400,300);
        
        show();
        Maximizer.maximize(this);
    }
    public static void main(String[] args)
    {
        new AppFrame();
    }
}



Diskussionsverlauf:
...und noch ne Frage: Fenster maximieren
    Re: ...und noch ne Frage: Fenster maximieren
        Re: ...und noch ne Frage: Fenster maximieren
            Re: ...und noch ne Frage: Fenster maximieren
                Re: ...und noch ne Frage: Fenster maximieren

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com