有没有办法在某个分辨率(最大并包括1024x768)以下最大化JFrame,但是如果监视器更大,则将其大小固定为该分辨率吗?
我知道.setExtendedState()的工作方式,但是无论监视器大小如何,这只会使它最大化。
最佳答案
Toolkit's getScreenSize()
方法将允许您获取屏幕的大小。
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
System.out.println(screenSize);
// use this information in a getPreferredSize() override.
覆盖JFrame可能是这种情况。例如,
class MyFrame extends JFrame {
public static final int MAX_WIDTH = 0x400;
public static final int MAX_HEIGHT = 0x300;
@Override
public Dimension getPreferredSize() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
int maxWidth = Math.min(screenSize.width, MAX_WIDTH);
int maxHeight = Math.min(screenSize.height, MAX_HEIGHT);
return new Dimension(maxWidth, maxHeight);
}
}