Java Swingライブラリを使用してGUIを開発しています。レイアウトとしてGridlayoutを使用しているJButtonをいくつか追加したいのですが、パネルのサイズはモニター全体のサイズですが、JButtonのサイズは違うかもしれませんが、私はパネルに10 * 10の配列を追加することができますが、パネルに3 * 3の配列のJbuttonを追加することができます。私が3 * 3を追加すると、jbuttonsは現在のJPanelの上にあるJPanel(これはオプションと呼ばれます)全体を占有するだけの大きさになります。定数を設定するにはどうすればいいですか?サイズが2 Jbutton(現在はディスプレイ全体を占める)であっても、サイズが変更されないようにJButtonのサイズを変更します(setSize関数は動作しません。また、レイアウトはnullではなくGridLayoutにします)。 :レイアウトが "GridLayout"であるJPanelにJButtonを追加する
public class Edit extends JFrame{
public Edit()
{
width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
newer = new JButton(new ImageIcon(b)) ;
done = new JButton(new ImageIcon(f)) ;
savior = new JButton(new ImageIcon(d)) ;
undo = new JButton(new ImageIcon(h)) ;
newer.setSize(200, 60);
done.setSize(200, 60);
savior.setSize(200, 60);
undo.setSize(200, 60);
options = new JPanel();
options.setSize(width , 100);
options.setLayout(new GridLayout(1,5,(width- 1000)/6,20)) ;
options.add(newer);
options.add(done);
options.add(savior);
options.add(undo);
options.setBackground(Color.magenta);
options.add(selector);
this.setExtendedState(this.MAXIMIZED_BOTH);
this.setUndecorated(true);
this.setVisible(true);
view = new JPanel();
regions = new JButton[3][3];
view.setSize(width, height - 100) ;
view.setLayout(new GridLayout(3,3));
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
regions[i][j] = new JButton();
regions[i][j].setSize(80,80) ;
view.add(regions[i][j]);
}
editPhase = new JPanel();
editPhase.setLayout(null);
editPhase.add(options,BorderLayout.NORTH);
editPhase.add(view,BorderLayout.SOUTH);
this.add(editPhase);
}
}
ありがとうございました。ここで
まず、あなたが '' setPreferredSize(...)を呼び出すべきである、ない 'のsetSize(...)'。もう1つは、各ボタンをパネル上に配置し、その優先サイズを設定して、指定した領域にそのボタンを追加することです。したがって、 'JButton'ではなく' JPanel'だけがサイズ変更されますか? – mre
もっと強力で便利なレイアウトを使用しないのはなぜですか(私はJGoodiesを好む、多くはMigレイアウトまたはテーブルレイアウトをお勧めします)? –