1

私は4つのコンポーネントを持つパネルに取り組んでいます.a labeltextfield編集不可能なa、別のラベル、およびJTextArea. これらのコンポーネントは次々に垂直方向に配置され、このパネルにはボックス レイアウトを使用しています。私が気付いたのは、テキスト領域コンポーネントを入力すると、ラベルが文字ごとにシフトされて、それができなくなることです。ラベルは最初は左に配置されていますが、入力を開始するとすぐに右に移動し始めます。他の多くのコンポーネントを試しましたが、Box Layout は希望どおりに動作するようです。このエラーを修正する必要があります。アイデアはありますか?これは私のパネルコードです:

JPanel Panel = new JPanel();
Panel.setLayout(new BoxLayout(Panel,BoxLayout.Y_AXIS));
Panel.add(new JLabel("just a label here"));
Panel.add(textFieldComponent);
Panel.add(new JLabel("just a label here"));
Panel.add(textAreaComponent);
4

4 に答える 4

3

別の選択肢:

textAreaComponentをJScrollPaneに追加します(scrollPaneのalignmentXを0.0fに設定します)

于 2013-01-21T07:06:00.293 に答える
3

別のLayoutManager例を使用GridBagLayoutする

JLabelを水平BoxLayout(または) のパネルに配置して、BorderLayout目的の位置合わせを有効にします。

于 2013-01-21T06:05:24.330 に答える
2

必ず別のレイアウトを使用する必要があります。私の個人的なお気に入りの 1 つは、JGoodies の Formsです。私はまだ Java Swing レイアウトに近いものを見たことがありません。

于 2013-01-21T09:36:19.030 に答える