2

サイズ変更関数を処理するリスナーを作成するのではなく、既存のレイアウト マネージャーを使用する利点は何ですか? たとえば、ボタンをグリッドに配置し、グリッドを中央に配置する必要がありました。

int h = component.getHeight() / 11;
int w = component.getWidth() / 9;
int offsetX = w;
int offsetY = h;
int x = (2 * column) * w - offsetX;
int y = (2 * row) * h - offsetY;

setBounds(x, y, w, h);

レイアウト マネージャーをいじる代わりに、JPanel のサイズが変更されるたびにボタンに対してアクティブになる小さなコードを書きました。レイアウト マネージャーを使用すると、すべてを配置するためのコードを作成するのが面倒になり、JPanel にコンポーネントを追加する場合は、単純にいくつかの追加または削除を追加するのではなく、さらに複雑になります。 .

これを考えると、このような状況でレイアウトマネージャーを使用する利点はありますか?それとも、カスタマイズされたいくつかの行を使用して維持する方が簡単でしょうか?

4

3 に答える 3

5

あなたのコードは基本的にGridLayout.

setLayout(new GridLayout(11, 9));
// add all the components
...
// Profit

中央に配置するには:

JPanel outerPanel = new JPanel(new BorderLayout());
JPanel gridPanel = new JPanel(new GridLayout());
outerPanel.add(gridPanel, BorderLayout.CENTER);
于 2010-11-15T22:06:44.443 に答える
1

非常に単純なものの場合、独自のコードを書くのは十分に簡単である可能性があります。しかし、2 つの新しいボタンとテキスト領域を追加する必要があることがわかったら、どうなるでしょうか。Layout Manager の使い方を学ぶことは、時間の有効な投資になると思います。知識があると、GUI の複雑さを簡単に調整できるからです。(しゃれは意図されていません;)

于 2010-11-15T22:08:32.637 に答える
1

涼しい。ここで、同じ 128 回の書き込みを試みます (各画面の各コントロールに対して)。そして、それはゲームの終わりではありません。ここで、アプリケーションのグラフィック デザインを変更してみてください。つまり、このコードを 128 回も書き直してください。楽しみ!

于 2010-11-15T22:12:54.067 に答える