.resize . getScreenSize() ); - Taskleiste

Status
Nicht offen für weitere Antworten.

JavaPain

Mitglied
Hey,

bin noch absoluter Newbie.
Will mein Java Programm so haben dass es beim Start maximiert aus-
geführt wird. Allerdings sollte die Taskleist berücksichtigt wrden.
Also das Fenser soll nicht dahinter verschwinden sondern genau über
Ihr zu Ende sein. Wie kann ich das bewerkstelligen???
Hab schon gesucht aber wahrscheinlich bin ich noch zu grün!!! ;)

danke schon mal
 
R

Roar

Gast
so: http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Frame.html#setExtendedState(int)
 

Illuvatar

Top Contributor
Oder wenn du das miteinberechnest:
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Toolkit.html#getScreenInsets(java.awt.GraphicsConfiguration)
 

Isaac

Bekanntes Mitglied
Ich hab mir dazu mal ne Methode geschrieben die das für mich macht weil ich irgendwie bei jedem Programm wieder darüber "gefallen" bin. Keine Ahnung was die Methode macht wenn man ihr 2 oder 5 gibt aber für Werte von 1.0 bis 0.1 funktioniert sie wie sie soll, alle anderen Werte waren für mich ohne Belang. Allerdings rechnet sie auch nicht die Taskleite mit (vieleicht sollte ich das noch mal einarbeiten. In der Regel arbeite ich aber eh mit 0.8 und dann muss die Taskleiste schon ziemlich weit hochgezogen haben damit das Fenster verdeckt ist.


Code:
    /**
     *  returns the screencoordinate where to put the window to if you want to fill X% 
     *  of the screen. The lenght ratio will be the same as the screen resolution 
     *  @param  double area of the screen to fill (in % 1.0 = 100%)
     */
    public static ScreenPlaceResource getCoordinatesForWindowPlacement(double areaToFill)
    {
        ScreenPlaceResource spr = new ScreenPlaceResource();
        Dimension d = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        spr.screenXSize = (int)d.getWidth();
        spr.screenYSize = (int)d.getHeight();
        
        double  lenghtRatio = (double)spr.screenXSize / (double)spr.screenYSize;
        int     maxArea     = spr.screenXSize * spr.screenYSize;
        double  targetArea  = maxArea * areaToFill;
        
        spr.windowYSize = (int)Math.sqrt(targetArea / lenghtRatio);
        spr.windowXSize = (int)(spr.windowYSize * lenghtRatio);
        
        spr.xPos = (spr.screenXSize - spr.windowXSize) / 2;
        spr.yPos = (spr.screenYSize - spr.windowYSize) / 2;
        
        return spr;
    }
 

meez

Top Contributor
Hier:

Code:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
setExtendedState(getExtendedState() | Frame.MAXIMIZED_BOTH);
setBounds(env.getMaximumWindowBounds());

Einfach in der show() Methode des JFrames einfuegen... (Oder im Konstruktor)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben