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

    }

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

4

3 回答 3

4

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

于 2012-04-26T00:27:21.240 回答
3

您可以做的只是将您的组件放入 aJScrollPane并将水平垂直滚动条策略设置为[VERTICAL|HORIZONTAL]_SCROLLBAR_AS_NEEDED. 这样,滚动条只会在JScrollPane的大小小于组件的首选大小时出现。

于 2012-04-26T00:42:25.097 回答
2

该类java.awt.Toolkit有一个名为 的实例方法getScreenSize(),它返回一个类型为 的对象java.awt.Dimension。ADimension是一个不可变对象(不能更改),具有两个公共的 final 字段: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.
        }
    }
}
于 2012-04-26T03:15:36.773 回答