2012-04-26 11 views
1

GridBagLayoutのリサイズコンポーネント

normal layout

しかし、私はラベルのカップルが投入されることになっているファイルを選択したとき。これは、私はそれらの小さな「...」ボタンを使用して、ファイルの選択を行った後のように見えるものです:あなたが見ることができるように

messed layout

は、全体のレイアウトを台無しにされます。私はActionListenerの中でやっているすべてはこれです:だから

  fileTxt = fileChooser.getSelectedFile(); 
      fileTxtField.setText(fileTxt.getAbsolutePath()); 
      labels = getLabels(); 
      lbl1.setText(labels[0].toUpperCase()); 
      Dimension size = lbl1.getPreferredSize(); 
      lbl1.setMinimumSize(size); 
      lbl1.setPreferredSize(size); 
      lbl2.setText(labels[1]); 
      lbl2.setToolTipText(longLbl); 
      size = lbl2.getPreferredSize(); 
      lbl2.setMinimumSize(size); 
      lbl2.setPreferredSize(size); 
      button1.setPreferredSize(new Dimension(20,25)); 
      button2.setPreferredSize(new Dimension(20,25)); 

、基本的には、ボタンが元のサイズに行くと全体のレイアウトを台無しにsizes.andを好まれません。これをどうやって解決するのですか?すべてのコンポーネントはgridBagConstraints.fillのてGridBagConstraintでいっぱいにしないように設定されているGridBagConstraints.NONEに設定 - ご提案ごとに、私はコードを削除したようしかし、レイアウトはまだ:(

UPDATE

を台無しにされますそれは、setPreferredSize()メソッドを呼んでいた、これは私が得るものです:

enter image description here

明らかに、これは私は避けたいものです - ボタンを、それは、setPreferredSizeを設定するためのものだった理由のテキストよりも大きいですボタンの上に。今私は何をしますか?

+0

サイズをリセットする必要があるのはなぜですか。最初にレイアウトを作成している間は非表示に設定し、アクションリスナに表示させることができます。また、グリッドバッグは、ラベルの他にコンポーネントが通常のグリッドから飛び出しているので、正しく設定されていないようです。コンポーネントのグリッドバッグ定数を設定する必要があります。より整ったレイアウト(グリッドバッグレイアウトの目的) –

+0

1)すぐに役立つように、[SSCCE](http://sscce.org/)を投稿してください。 2)コンストラクタ内のテキストフィールドのサイズを提案するのがベストです。 3)コンテナに 'pack()'を呼び出すようにしてください。 4)レイアウトは、コンポーネントの望ましいサイズを尊重することもあり、そうでない場合もあります。 5)これは[GroupLayout'](http://docs.oracle.com/javase/7/docs/api/javax/swing/GroupLayout.html)に適しています。 –

+0

@NitinChhajerはアップデートを追加しました – Jay

答えて

3

これには簡単な解決策があります。余分なボタンの幅は、ボタンテキストの左右にデフォルトのmarginsがあるためです。デフォルトでは14

と設定することができます。これは、btn.setMargin(new Insets(2, 0, 2, 0));と設定できます。

5

setPreferredSize()に電話しないでください。これを行うにはLayoutManagerしましょう。

GridBagConstraintsには、余分なスペースをどのくらい分散させるかを定義するためのパラメータfillweightxを定義します。

+0

+1 More [ここ](http://stackoverflow.com/q/7229226/230513)。 – trashgod

+0

この回答はsetPrefferredSizeメソッドを削除するのに役立ちましたが、Nitinの答えは正しくUIの問題を解決しました。したがって、私はupvotingとこれとニテンの答えを授与しています。 – Jay

関連する問題