1

私はもともと setSize を使用していましたが、これにより、Java の境界線とタイトル ルームが原因で、画面上のコンテンツが画面よりもわずかに大きくなりました。setpreferredSize を使用したところ、画面サイズが少し大きすぎました。コンテンツの右側と下部にスペースを残します。

私のJFrameで:

add(new Board());
    setTitle("Rougebot");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //setSize(600, 800);
    //getContentPane().setPreferredSize(new Dimension(600,800));
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
    setResizable(false);

マイボード (JPanel)

setPreferredSize(new Dimension(600,800));
4

2 に答える 2

8

呼び出すsetResizable(false) 前に呼び出しpack()ます:

add(new Board());
setTitle("Rougebot");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false); // <-- here
pack();
setLocationRelativeTo(null);
setVisible(true);

Board元の投稿の例のように、の優先サイズの設定を続けます。

Windows では、固定枠はサイズ変更可能な枠よりも細くなります。サイズを計算してから固定サイズに設定すると、ウィンドウ枠の幅が変更されます。これにより、Windows ではクライアント領域が増加し、外側の寸法は固定されたままになります。

于 2013-11-02T10:32:33.783 に答える
1

フレームには装飾(外枠)があります。pack が試みているのは、コンテンツ (表示可能) 領域がすべての子コンポーネントの推奨サイズの要件を満たしていることを確認してから、その周囲にフレーム装飾を追加することです。

装飾のサイズはプラットフォームによって異なります

例えば...

于 2013-11-02T09:17:51.030 に答える