2016-12-22 12 views
-1

グリッドGUIでゲームを作っていました。私は、JPanelを拡張してbgイメージを表示し、ボタンを所有するMyPanelを作成しました。問題は、私は12×12よりも大きいのGridLayoutを作るとき、それはそれは自分のmaginだなり、次のとおりです。左のenter image description hereGridlayoutはそれ自身のマージンになります

画像右、ケース> 13上の画像であった場合に< = 13ケースやボタンは、完璧にフィットされます私はを取り除くことができない小さなマージン。コード:

private void initialize() { 
     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(null); 

     MyPanel panel = new MyPanel(); 
     panel.setBounds(10, 10, 360, 360); 
     frame.getContentPane().add(panel); 
     panel.setLayout(new GridLayout(size,size)); 

     buttons = new Button[size][]; 
     for(int i=0;i<size;i++) 
     { 

      buttons[i] = new Button[size]; 
      for(int j=0;j<size;j++) 
      { 
       buttons[i][j] = new Button(); 
       panel.add(buttons[i][j]); 
      } 
     } 
    } 
+0

「私は取り除くことができない小さなマージン」:どこに???たぶんあなたの答えを大胆に2回入力すると、私たちはそれを見ることができるでしょう – gpasch

+0

@gpasch左上隅の右の画像に見られるように、いくつかのボタンがありますが、それらは完全にペインの開始に固執しません。 –

答えて

2

nullレイアウトは使用しないでください。

レイアウトマネージャを使用するポイントは、レイアウトマネージャがパネルのサイズを決定することです。

フレームでpack()を使用すると、すべてのコンポーネントが適切なサイズで表示されます。

また、Button、つまりAWTコンポーネントを使用しないでください。スイングコンポーネントは"J"で始まりますので、JButtonを使用してください。

関連する問題