2012-04-26 80 views
2

我想这样做如下:只显示滚动条在必要时

public class MyCustomDialog extends JDialog 
    { 

     public MyCustomDialog() 
     { 
      if (getClientVertScreenSize() < 800) 
      { 
      // Set the vertical size as 600, and give them a scroll pane to navigate to the bottom of the gui. 
      } 
      else 
      { 
      setSize(600, 800); // No need to add a scroll pane. 
      } 
     } 

    } 

麻烦的是我不知道如何检查客户的屏幕尺寸,所以不知道如何编写我的构造函数依赖的方法。

回答

2

java.awt.Toolkit有一个名为getScreenSize()的实例方法,它返回一个java.awt.Dimension类型的对象。 A Dimension是一个不可改变的对象(不能更改),它有两个公共的最终字段:widthheight。你可以得到的java.awt.Toolkit一个实例,并执行

你应该使用下面的代码:

import java.awt.Dimension; 
import java.awt.Toolkit; 

public class MyCustomDialog extends javax.swing.JDialog { 
    public MyCustomDialog() { 

     super(); // Invoke any JDialog initialization code. 

     Toolkit t = Toolkit.getDefaultToolkit(); 
     if (t.getScreenSize().height < 600) { 
      setSize(getWidth(), 600); 
      // Add your scrollpane, etc. 
     } else { 
      setSize(600, 800); // No need to add a scroll pane. 
     } 
    } 
} 
4

见Toolkit.getDefaultToolkit()。getScreenSize()

3

你可以做的只是把你的组件在JScrollPanehorizontalvertical滚动条设置策略[VERTICAL|HORIZONTAL]_SCROLLBAR_AS_NEEDED。这样,只有当JScrollPane的尺寸小于您的组件的首选尺寸时,才会显示滚动条。

+0

不错,这是我在想什么,但是这把滚动条中的JDialog如果内容不适合在JDialog中,对吗?这是我的测试显示。但是,我试图做一些稍微不同的事情。如果整个JDialog不适合客户端屏幕,那么我希望整个GUI缩小。让我知道,如果澄清的话。 – Sal 2012-04-26 02:33:25