2012-03-19 8 views
0

は、使用してサイズを変更できるJButtonがコンパクトグリッドを作るために、コンパクトなグリッド機能をSpringLayoutは: http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.htmlサイズ変更可能なJButtonを使用してコンパクトグリッドを作成する方法は?私はスイングを再利用しようとしています

それが正常に動作しますが、それは私のために役に立たないので、たSpringLayoutはJButtonがしresiseすることはできません。 サイズ変更可能なJbuttonを持つコンパクトグリッドを作成する他の方法はありますか?

+0

GridLayoutを使用し、GridBagLayoutを使用して独自のLayoutManagerを記述します。 – StanislavL

+0

GridLayoutとGridBagLayoutを使ってみました。列の幅がすべての列で同じであるという問題があります。 – user1253040

+0

独自のLayoutManagerを作成するにはどうすればよいですか? – user1253040

答えて

2
A: Use GridLayout, use GridBagLayout, write your own LayoutManager. 
Q: How can I write my own LayoutManager? 

@StanislavLが何とかLayoutManager自身を書いたために複雑ではありませんようのように、スイングの達人のために、私たちの残りの部分のためにMigLayoutまたはGridBagLayoutを使用することをお勧めしていないしてください、

+0

[* size variant *](http://stackoverflow.com/a/2900157/230513)も参照してください。 – trashgod

1

あなたは、このためのGridBagLayoutを使用することができます。ここでは、2つのボタンを示すサンプルを示します.1つはその幅を維持し、もう1つはフレームのサイズ変更時に幅を変更します。

レイアウトにどのように振る舞うべきかをコンポーネントに指示するGridBagConstraintsに注意してください。このウェイトは、サイズ変更動作を制御します。詳細はJava Tutorialsをご覧ください。

package test; 

import java.awt.Button; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 

import javax.swing.JFrame; 

public class LayoutResizeButtonTest extends JFrame { 

    public static void main(String[] args) { 

     LayoutResizeButtonTest app = new LayoutResizeButtonTest(); 

     app.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     app.setVisible(true); 

    } 

    LayoutResizeButtonTest() { 

     this.setLayout(new GridBagLayout()); 

     GridBagConstraints c = new GridBagConstraints(); 
     c.fill = GridBagConstraints.HORIZONTAL; 
     c.weightx = 1.0; 

     this.add(new Button("Resizable"), c); 

     c = new GridBagConstraints(); 
     c.weightx = 0.0; 

     this.add(new Button("Not Resizable")); 

     this.pack(); 

    } 

} 
+0

しかし、私はGridBagLayoutを使用してコンパクトグリッドを作成できますか? – user1253040

+0

@ user1253040「コンパクトグリッド」とはどういう意味ですか? – kleopatra

+0

GridBagLayoutでは、列内の各コンポーネントの幅はすべて同じです。最大幅はすべての列です。コンパクトグリッドは、列幅が列の最大要素幅であることを意味します。 – user1253040

関連する問題