Как максимизировать высоту JFrame? - PullRequest
2 голосов
/ 04 марта 2011

Windows не поддерживает myFrame.setExtendedState(JFrame.MAXIMIZED_VERT);.

Итак, я попытался определить размер экрана и сделал высоту JFrames такой же, как и высота экрана. Но тогда он покрывает панель задач Windows.

Есть ли другой способ максимизировать мой JFrame?

Спасибо

esanits

Ответы [ 3 ]

3 голосов
/ 04 марта 2011

попробуйте это, приятель:

Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(t.getGraphicsConfiguration());
int taskHeight=screenInsets.bottom;       
System.out.println(taskHeight);  
1 голос
/ 04 марта 2011

Вот один из способов получить основную информацию об окне и рамке:

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

public class FrameInfo
{
    public static void main(String[] args)
    {
        String laf = "javax.swing.plaf.metal.MetalLookAndFeel";
//        laf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
//        laf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";

//        try { UIManager.setLookAndFeel( laf ); }
//        catch (Exception e) { System.out.println(e); }
//        JFrame.setDefaultLookAndFeelDecorated(true);

        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle bounds = env.getMaximumWindowBounds();
        System.out.println("Screen Bounds: " + bounds );

        GraphicsDevice screen = env.getDefaultScreenDevice();
        GraphicsConfiguration config = screen.getDefaultConfiguration();
        System.out.println("Screen Size  : " + config.getBounds());
        System.out.println(Toolkit.getDefaultToolkit().getScreenSize());

        JFrame frame = new JFrame("Frame Info");
        System.out.println("Frame Insets : " + frame.getInsets() );

        frame.setSize(200, 200);
//        frame.pack();
        System.out.println("Frame Insets : " + frame.getInsets() );
        frame.setVisible( true );

        System.out.println("Frame Size   : " + frame.getSize() );
        System.out.println("Frame Insets : " + frame.getInsets() );
        System.out.println("Content Size : " + frame.getContentPane().getSize() );
     }
}
0 голосов
/ 10 апреля 2013

Я не уверен, что это лучший способ, но у меня это сработало ...

    Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(mainScreen.getGraphicsConfiguration());
    int taskHeight=screenInsets.bottom;
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    mainScreen.setSize(d.width/2, d.height - taskHeight);
    mainScreen.setLocation(d.width/2, 0);
...