仅在必要时显示滚动条

时间:2012-04-26 00:24:19

标签: java swing scroll

我想做以下事情:

    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.
          }
       }

    }

问题是我不知道如何检查客户端的屏幕大小,所以我不知道如何编写我的构造函数所依赖的方法。

3 个答案:

答案 0 :(得分:4)

请参阅Toolkit.getDefaultToolkit()。getScreenSize()

答案 1 :(得分:3)

您可以做的只是将您的组件放在JScrollPane中,并将horizontalvertical滚动条策略设置为[VERTICAL|HORIZONTAL]_SCROLLBAR_AS_NEEDED。这样,仅当JScrollPane的大小小于组件的首选大小时,才会显示滚动条。

答案 2 :(得分:2)

java.awt.Toolkit有一个名为getScreenSize()的实例方法,它返回类型为java.awt.Dimension的对象。 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.
        }
    }
}