1つの方法は、拡張状態を使用することです。これは、基盤となるOSにJFrameを最大化するように要求します。
setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
他のアプローチは、要件に合わせて画面を手動で最大化することです。
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(100, 100, (int) dim.getWidth(), (int) dim.getHeight());
setLocationRelativeTo(null);
しかし、これにはUbuntu OSに落とし穴があります。私が見つけた回避策はこれでした。
if (SystemHelper.isUnix()) {
getContentPane().setPreferredSize(
Toolkit.getDefaultToolkit().getScreenSize());
pack();
setResizable(false);
show();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Point p = new Point(0, 0);
SwingUtilities.convertPointToScreen(p, getContentPane());
Point l = getLocation();
l.x -= p.x;
l.y -= p.y;
setLocation(p);
}
});
}
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(100, 100, (int) dim.getWidth(), (int) dim.getHeight());
setLocationRelativeTo(null);
Fedoraでは、上記の問題は存在しません。しかし、GnomeやKDEには複雑な問題があります。だから注意してください。お役に立てれば。