2

このフレームを作成する必要があります:

どのレイアウトを使用すればよいですか? ボックスまたはグリッドのレイアウトを考えていますが、右側のメニューが問題になります。

4

3 に答える 3

8

コードには多くの繰り返しがあります。各セクションを分割して個別のコンポーネントにし、個々のレイアウトのニーズに焦点を当てます。

ここに画像の説明を入力

メイン画面には 4 つのメイン エリアがあります (メニューを除く)。

GridBagLayoutこれらの 4 つのセクションをレイアウトするようなものを使用します。これにより、各セクションは、他のセクションに影響を与えることなく、必要な高さまで成長できます。必要に応じて、各セクションに個々の成長のヒントを提供することもできます。

最初のセクションはJLabelなので、かなりシンプルです

ここに画像の説明を入力

このセクションは基本的に、配置がわずかに異なる 3 つのラベルです。サイズ変更のヒントを提供できる一方で、個々のセルの配置を可能にする最大の柔軟性を提供するので、私はまだ aGridBagLayoutを使用します (たとえば、画面サイズが変更されたときに時間行の幅を作成する場合があります)。

ここに画像の説明を入力

このセクションはもう少し複雑です。基本的に、これは左右で同じコンポーネントであり、いくつかの巧妙なプロパティを使用して、ラベルの位置を問題なく変更できます。

個々のドット/ラベルは、GridLayout. GridBagLayoutラベルをドットとは異なるサイズにすることができるため、注意を怠って を使用する可能性があります。

次に、 a のようなものを使用して、GridLayout各面をコンポーネントに配置します (その後、メイン画面に配置されます)。

ここに画像の説明を入力

繰り返しますが、これは単純な同じコンポーネントをミラー化したものです。プロパティを介して配置を変更できる単一のコンポーネントを作成するだけです。

次に、必要に応じて a を使用GridBagLayoutして各ラベルをレイアウトします。各行が独自の高さを持つことができるので、私はこのようにします。

また、空手の指導経験も 15 年あります。仕事に来てもいいですか?

于 2013-03-15T01:31:39.517 に答える
0

AWTレイアウトを使用する場合GridBagLayoutは、 でほとんどの制御が可能です。

ここに画像の説明を入力

java2s.comの例から次の関数を採用しました。

/**  
 * A helper method to add Components to a Container
 * using GridBagLayout  
 */  
private static void addComponent(Container container,
  Component component, int gridX, int gridY,
  int gridWidth, int gridHeight, int anchor, int fill)
{
  Insets insets = new Insets(0, 0, 0, 0);
  GridBagConstraints gbc = new GridBagConstraints(
    gridX, gridY, gridWidth, gridHeight, 1.0, 1.0,
    anchor, fill, insets, 0, 0
  );
  container.add(component, gbc);
}
于 2013-03-15T01:11:36.847 に答える
-1

基本レイアウト、特に を忘れて、MigLayoutGridBagLayoutを見てください。これにより、多くの問題が解決されます。

于 2013-03-15T09:12:11.987 に答える