- ベストアンサー
TextFiledを縦31、横7でレイアウトしたい!どうすればいい?
- TextFiledを縦31、横7のレイアウトにする方法について教えてください。
- FlowLayoutを使用してTextFiledを縦31、横7のレイアウトにする方法について教えてください。
- Containerを使用してTextFiledを縦31、横7のレイアウトにする方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問文で気になったので、補足を... ここで出てきているのはFlowLayout,BorderLayout,GridLayoutの 3つが出てきています。 まずポイントとして、「一つのコンテナには1つのレイアウトしか 登録できない」ということです。 setLayout()メソッドで指定したレイアウト方法によって add()メソッドの使い方が異なります。 本文ではsetLayout(new FlowLayout())となっているので add(コンポーネント)という使い方しか出来ません。 つぎにレイアウトですが、それぞれ次のようなレイアウトになっています FlowLayoutは「規定のサイズで左から順に等間隔に配置する」というレイアウトです。 指定しているようにFlowLayout.{LEFT,CENTER,RIGHT}を指定して、 左詰、中央ぞろえ、右詰が指定できます。 BorderLayoutは「上下左右中央の位置へ引き伸ばして配置する」というレイアウトです。 指定しているようにadd()メソッドの引数にBorderLayout.{NORTH,SOUTH,EAST,WEST,CENTER}を 指定してその位置へ配置します。 このときNORTH,SOUTHは「高さが規定のサイズ、幅は領域いっぱい」となって配置されます。 このときEAST,WESTは「高さは領域いっぱい、幅が規定のサイズ、」となって配置されます。 CENTERは「高さ、幅ともに残った領域全体」となって配置されます。 GridLayoutは「タイルのように格子状に均等に貼り付ける」というレイアウトです。 add()メソッドで追加するとその順に「右から左、上から下へ」配置されていきます このとき「高さ、幅ともに分割された領域全体」となって配置されます。 このように引き伸ばされるものは間にFlowLayoutのコンテナをはさんでいきます。 (追加したいコンポーネントはFlowLayoutで規定のサイズ、 中間のコンテナが引き伸ばされるという形になるため)。 なんか長文になってしまいましたが、がんばってください ちなみにJTableというコンポーネントを使うとエクセルの表のようなGUIが つくれます...もしかするとこっちがやりたいのでは?(^_^;
その他の回答 (2)
- tekebon
- ベストアンサー率62% (36/58)
すみません#1まちがえました CardLayoutではなくGridLayoutでした 失礼しました<(__)> 説明を置き換えて読んでください
- tekebon
- ベストアンサー率62% (36/58)
FlowLayoutは横に等間隔に配置するレイアウトです タイルのように背理するのであればCardLayoutを使います setLayout(new Cardlayout(縦に何個,横に何個)) と指定します add()メソッドで追加していくと横へ順にいっぱいになったら 次の行へと埋まっていきます。 ただしこのときコンポーネントのサイズはいっぱいに 引き伸ばされるので、引き伸ばしたくないときは いったんパネルに配置してそのパネルを追加してみてください