このフレームを作成する必要があります:
どのレイアウトを使用すればよいですか? ボックスまたはグリッドのレイアウトを考えていますが、右側のメニューが問題になります。
このフレームを作成する必要があります:
どのレイアウトを使用すればよいですか? ボックスまたはグリッドのレイアウトを考えていますが、右側のメニューが問題になります。
コードには多くの繰り返しがあります。各セクションを分割して個別のコンポーネントにし、個々のレイアウトのニーズに焦点を当てます。
メイン画面には 4 つのメイン エリアがあります (メニューを除く)。
GridBagLayout
これらの 4 つのセクションをレイアウトするようなものを使用します。これにより、各セクションは、他のセクションに影響を与えることなく、必要な高さまで成長できます。必要に応じて、各セクションに個々の成長のヒントを提供することもできます。
最初のセクションはJLabel
なので、かなりシンプルです
このセクションは基本的に、配置がわずかに異なる 3 つのラベルです。サイズ変更のヒントを提供できる一方で、個々のセルの配置を可能にする最大の柔軟性を提供するので、私はまだ aGridBagLayout
を使用します (たとえば、画面サイズが変更されたときに時間行の幅を作成する場合があります)。
このセクションはもう少し複雑です。基本的に、これは左右で同じコンポーネントであり、いくつかの巧妙なプロパティを使用して、ラベルの位置を問題なく変更できます。
個々のドット/ラベルは、GridLayout
. GridBagLayout
ラベルをドットとは異なるサイズにすることができるため、注意を怠って を使用する可能性があります。
次に、 a のようなものを使用して、GridLayout
各面をコンポーネントに配置します (その後、メイン画面に配置されます)。
繰り返しますが、これは単純な同じコンポーネントをミラー化したものです。プロパティを介して配置を変更できる単一のコンポーネントを作成するだけです。
次に、必要に応じて a を使用GridBagLayout
して各ラベルをレイアウトします。各行が独自の高さを持つことができるので、私はこのようにします。
また、空手の指導経験も 15 年あります。仕事に来てもいいですか?
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);
}
基本レイアウト、特に を忘れて、MigLayoutGridBagLayout
を見てください。これにより、多くの問題が解決されます。