0

アプレットの作り方を勉強中です。アプレットを含むフレームがあります。アプレット内には、4 つの異なるパネルがあります。1 つのメイン パネル (BorderLayout を使用) と、メイン one() 内の 3 つのサブパネル (北に 1 つ、南に 1 つ、中央に 1 つ)。アプレットを起動すると、メイン フレームのサイズが非常に小さくなります。setSize() を使用して変更しようとしましたが、うまくいきません。次に、他の投稿の setPreferedSize() と pack() を使用してみましたが、うまくいきません。これが私のコードです:

        BounceBallApp applet = new BounceBallApp();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("BounceBallApp");

        frame.add(applet, BorderLayout.CENTER);

        frame.setPreferredSize(new Dimension(1000, 1000));
        frame.setLocationByPlatform(true);
        frame.pack();
        frame.setVisible(true);
4

2 に答える 2

1

さて、あなたの問題があります...

frame.setPreferredSize(new Dimension(1000, 1000));
frame.setLocationByPlatform(true);
frame.pack(); <-- This is you're problem, or is it...

pack推測する必要がないように、レイアウトマネージャーの優先サイズを使用してフレームを「パック」しますか...

Java ドキュメントから...

サブコンポーネントの優先サイズとレイアウトに合わせて、この Window のサイズを変更します。ウィンドウの幅と高さのいずれかが setMinimumSize メソッドへの前の呼び出しで指定された最小サイズより小さい場合、ウィンドウの幅と高さは自動的に拡大されます。

ウィンドウおよび/またはその所有者がまだ表示可能になっていない場合は、適切なサイズを計算する前に両方が表示可能になります。Window は、サイズが計算された後に検証されます。

また...なぜこのように2つのトップレベルのコンテナを混在させたいのか理解できませんが、そうしないことを強くお勧めします...

于 2012-11-02T03:24:00.070 に答える
0

これを使用してみてくださいComponent#setMinimumSize(...)。この最小サイズに違反するレイアウト マネージャーは許可されません。

于 2012-11-02T03:55:51.957 に答える