JavaでJFrameの最大化ボタンを無効化する方法を解説
JFrameは、javax.swingパッケージに属するクラスで、java.awt.Frameクラスを継承しています。境界線とタイトルバーを持つトップレベルウィンドウであり、JFrameクラスには外観や動作をカスタマイズするための多数のメソッドが用意されています。
JFrameのサイズを設定した後でも、デフォルトの状態ではユーザーが自由にウィンドウサイズを変更できてしまいます。具体的には、カーソルをウィンドウの隅に合わせてドラッグすればサイズを変更できますし、右上にある閉じるボタンの隣の「最大化」ボタンを押せば、画面いっぱいに拡大されてしまいます。
これは、JFrameクラスではリサイズ(resize)がデフォルトでtrueに設定されているためです。そこで、setResizable(false)メソッドを使ってこれをfalseに変更すると、コード内で指定した寸法どおりにウィンドウが表示され、ユーザーによるリサイズや最大化操作が一切できなくなります。結果として、最大化ボタンも自動的に無効化されます。
サンプルコード
import java.awt.*;
import javax.swing.*;
public class JFrameDemo extends JFrame {
String title;
public JFrameDemo(String title) {
super(title);
add(new JLabel("最大化ボタンが無効なJFrame"), BorderLayout.CENTER);
setSize(350, 275);
setLocationRelativeTo(null);
setResizable(false); // 最大化ボタンを無効化
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new JFrameDemo("JFrame Demo");
}
}実行結果
上記のコードを実行すると、幅350ピクセル×高さ275ピクセルの固定サイズのウィンドウが画面中央に表示されます。タイトルバーの最大化ボタンはグレーアウトして押せない状態になり、ウィンドウの端をドラッグしてもサイズは変わりません。
ポイントまとめ
- setResizable(false):リサイズを禁止し、最大化ボタンも同時に無効化する
- setSize(int, int):ウィンドウの初期サイズを指定する
- setLocationRelativeTo(null):ウィンドウを画面中央に配置する
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE):閉じるボタン押下時にアプリケーションを終了させる
このように、たった1行のsetResizable(false)を追加するだけで、JFrameの最大化ボタンを簡単に無効化できます。ダイアログやツールウィンドウなど、サイズを固定したいUIを作成する際にぜひ活用してください。
-
JavaのJButtonにショートカットキーを設定する方法をわかりやすく解説
JButtonはAbstractButtonのサブクラスで、Java Swingアプリケーションにプラットフォームに依存しないボタンを追加するために使用されます。JButtonは、ボタンが押されたりクリックされたりしたときにActionListenerインターフェースを発生させることができ、さらにMouseListenerやKeyListenerインターフェースも発生させることが可能です。また、setMnemonic()メソッドを使用することで、JButtonにショートカットキー(ニーモニック)を簡単に設定できます。ニーモニックを設定すると、ユーザーはマウスを使わずにキーボードの組み合わせ(例
-
JavaでJFrameの最大化ボタンを無効化する方法を解説
JFrameは、javax.swingパッケージに属するクラスで、java.awt.Frameクラスを継承しています。境界線とタイトルバーを持つトップレベルウィンドウであり、JFrameクラスには外観や動作をカスタマイズするための多数のメソッドが用意されています。JFrameのサイズを設定した後でも、デフォルトの状態ではユーザーが自由にウィンドウサイズを変更できてしまいます。具体的には、カーソルをウィンドウの隅に合わせてドラッグすればサイズを変更できますし、右上にある閉じるボタンの隣の「最大化」ボタンを押せば、画面いっぱいに拡大されてしまいます。これは、JFrameクラスではリサイズ(resi