2016-12-22 1 views
-1

저는 그리드 GUI로 게임을하고 있었고, JPanel을 확장하여 bg 이미지를 표시하고 자신의 버튼을 만드는 MyPanel을 만들었습니다. 문제는 12x12보다 큰 그리드 레이 아웃을 만들면 다음과 같습니다. 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

"나는 제거 할 수없는 작은 여백": 어디 ??? 어쩌면 답을 두 번 굵게 입력하면 – gpasch

+0

@ gpasch를 볼 수 있습니다. 왼쪽 상단 구석의 그림에서 볼 수 있듯이 일부 단추가 있지만 창 시작 부분에 완벽하게 붙지는 않습니다. –

답변

2

null 레이아웃을 사용하지 마십시오!

레이아웃 관리자를 사용하는 요점은 레이아웃 관리자가 패널의 크기를 결정한다는 것입니다.

프레임에 pack()을 사용하면 모든 구성 요소가 원하는 크기로 표시됩니다.

또한 AWT 구성 요소 인 Button을 사용하지 마십시오. 스윙 구성 요소는 "J"으로 시작하므로 JButton을 사용해야합니다.

관련 문제