2011-03-04 21 views
2

Windows不支持myFrame.setExtendedState(JFrame.MAXIMIZED_VERT);如何最大化JFrame的高度?

所以我试图获得屏幕尺寸,并使JFrames的高度与屏幕高度一样大。但是它涵盖了Windows任务栏。

是否有任何其他方式来最大化我的JFrame vertcially?

感谢,

esanits

回答

1

这里有一种方法来获取有关窗口和框架基本信息:

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

非常感谢,这个作品 – esanits 2011-03-04 17:11:27

3

尝试了这一点,哥们:

Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(t.getGraphicsConfiguration()); 
int taskHeight=screenInsets.bottom;  
System.out.println(taskHeight); 
+0

非常感谢,这个作品 – esanits 2011-03-04 16:22:56

0

我不确定这是否是最好的方法,但它对我有效...

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);