4

よし、この JFrame に画面が表示されました。サイズを 800 x 800 に設定しました。ただし、ウィンドウはそれより小さく作成されます。タスクバーはフルサイズではないので問題ありません。

package sharph;

import java.awt.Dimension;
import javax.swing.JFrame;

public class Main extends JFrame {

    public static String Title = "Game 1";

    public static Dimension screenSize = new Dimension(800,800);

    public static void main(String[] args) {        
        JFrame frame = new JFrame();

        frame.setTitle(Title);
        frame.setSize(screenSize);
        frame.setLocationRelativeTo(null);
        frame.setResizable(true);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);

        Screen screen = new Screen();
        screen.setSize(screenSize);

        frame.add(screen);
        frame.setVisible(true);
    }
}

スクリーン クラスでは、paint メソッドは、境界線があるべき場所の周りにボックスを描画します。

//Draw border
g.setColor(Color.RED);
g.drawRect(1, 1, 799, 799);

実行すると、ウィンドウがボックスよりも小さくなり、下と右側が切り取られます。

ここに画像の説明を入力 ここに画像の説明を入力

境界線の違いを示すために手動でサイズを変更した 2 番目の図に注意してください。

ボックスを両側で 1 ピクセル小さく描画したことに気付きましたが、その差は 2 ピクセルをはるかに超えています。

4

2 に答える 2

1

「screen.setSize(screenSize);」の代わりに 「screen.setPreferredSize(screenSize);」と入力します。そして、「frame.setVisible(true);」と入力した後 「frame.pack()」と入力します。「frame.setSize(screenSize);」を削除することもできます。あなたがしたい場合は。

于 2013-04-20T00:53:05.377 に答える