5

私はJavaにかなり慣れていないので、いくつかのラベル、ボタン、およびテキストフィールドを備えたGUIアプリケーションを作成しようとしています. プログラムは非常にシンプルで、デフォルトのレイアウトである FlowLayout を使用したかっただけです。すべてをうまく配置してサイズを調整することができましたが、唯一機能していないように見えるのは位置合わせです。ボタンとテキストフィールドを特定の配置で配置したいのですが、配置を設定すると、オブジェクト自体ではなくオブジェクトの内部にテキストが移動します。たとえば、次のように書きました。

 button.setHorizontalAlignment(JButton.RIGHT);

ボタン自体ではなく、ボタン内のテキストを揃えているようです。ボタン内のテキストではなく、ボタン自体を整列させる方法はありますか?

他のタイプのレイアウト(BoxLayoutなど)を使用すると配置が簡単になることはわかっていますが、FlowLayoutを使用して配置することが不可能でない限り、これにはFlowLayoutを使用したいだけです(そうは思いません)。 .

前もって感謝します。

4

3 に答える 3

14

コンストラクターを参照してくださいFlowLayout(int align)

FlowLayout指定された配置とデフォルトの5単位の水平および垂直ギャップを使用して新しいものを作成します。アラインメント引数の値は、、、、、、またはのいずれかFlowLayout.LEFTFlowLayout.RIGHTある必要があります。FlowLayout.CENTERFlowLayout.LEADINGFlowLayout.TRAILING

この回答(上部のコンボとチェックボックス)にFlowLayout.RIGHT見られるように、あなたは後を追っているようです。

于 2012-03-04T07:52:26.487 に答える
2

setHorizontalAlignmentofは、ボタンの位置ではなく、アイコンテキストAbstractButtonの水平方向の配置を設定します。AbstractButton のデフォルトは SwingConstants.CENTER です。

ボタンを配置したい場合..パネルまたはフレームに追加しながら位置を設定します..このようなもの..

p.add(button, BorderLayout.SOUTH);//using `BorderLayout`

フロー レイアウトは通常、パネルにボタンを配置するために使用されます。同じ行に収まるボタンがなくなるまで、ボタンを左から右に配置します。

于 2012-03-04T07:26:35.390 に答える
2

FlowLayout だけでこれを行うことはできないと思います。

私の提案は次のとおりです。

  • より強力なレイアウト メカニズムであるMigLayoutへの切り替えを検討してください。MigLayout を使用すると、基本的に柔軟なグリッド内にコンポーネントを配置でき、各グリッド セル内でコンポーネントの特定の配置を設定できます。
  • サブコンポーネントのアライメントが必要な場合は、ネストされた JPanel 内にサブコンポーネントを配置することも理にかなっています。次に、この JPanel に別のレイアウト (おそらく BorderLayout?) を使用できます。これにより、必要な正確な配置を取得できます。
于 2012-03-04T07:27:42.797 に答える