2016-03-25 16 views
1

私はJavaのスイングで簡単なUIゲームを作ろうとしています。ここに私のターゲットレイアウト設計は、次のとおりです(すべてのパネルが同じ幅を持って、私の図面を言い訳)gridlayoutでパネルのサイズを変更する

layout design

私は4×1とGridLayoutを使用

3小さな高さパネルと1大型パネルを必要としています。最初のパネルにいくつかのボタンを追加しました。

mainFrame = new JFrame("Basket Game"); 
mainFrame.setLayout(new GridLayout(4, 1)); 


options = new JPanel(); 
options.setLayout(new FlowLayout()); 
options.setBorder(new TitledBorder("Options Menu")); 

options.add(settings); 
options.add(start); 
options.add(pause); 
options.add(reset); 
options.add(exit); 

mainFrame.add(options); 

しかし、最初のパネルが大きすぎます。

form

は、私はこれらのパネルのサイズを設定するにはどうすればよいか、私は別のレイアウトパターンを使用する必要があります。

答えて

3

GridLayoutを使用すると、グリッド内のすべてのセルのサイズが同じになるため、パネルの全高が1/4になります。

あなたは垂直BoxLayoutを使用して検討してください。私はあなたがたと思い

 JFrame frame = new JFrame(); 

     JPanel p1 = new JPanel(); 
     p1.add(new JButton("11111")); 
     JPanel p2 = new JPanel(); 
     p2.add(new JButton("222222")); 
     JPanel p3 = new JPanel(); 
     p3.add(new JButton("3333")); 
     JPanel p4 = new JPanel(); 
     p4.setPreferredSize(new Dimension(50, 400)); 

     JPanel mainPanel = new JPanel(); 
     mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); 

     mainPanel.add(p1); 
     mainPanel.add(p2); 
     mainPanel.add(p3); 
     mainPanel.add(p4); 

     frame.setContentPane(mainPanel); 
     frame.pack(); 
     frame.setVisible(true); 
+0

:ここ

JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); // add the panels to mainPanel, then mainFrame.setContentPane(mainPanel); 

は1つのボタンそれぞれを含む3枚のパネル、および1枚のパネルは、大きいサイズを持つ、一例であり、 X軸を言う。しかし、サイズはまだ同じです。ここにY軸の画像があります:http://i.imgur.com/D6OsGuq.png X軸:http://i.imgur.com/uNV729m.png – user3220381

+0

答えが誤解を招くように、私は再び編集しました。 – Berger

+0

ありがとうございます。最終更新はそれを修正しました – user3220381

関連する問題