2013-10-28 7 views
0

버튼이 올바르게 정렬되지 않았습니다. 뭐가 잘못 되었나요? 여기 버튼이 올바르게 정렬되지 않았습니다.

private void loadPuzzleButtons() 
{ 
    if (active_puzzle != null) 
    { 
     int devider = 5; 
     int count = 0; 
     JToggleButton puzzleButton[] = new JToggleButton[active_puzzle.getNumberOfPieces()]; 
     for(int row = 0; row < active_puzzle.getRows(); row++) 
     { 
      for(int column = 0; column < active_puzzle.getColumns(); column++) 
      { 
       puzzleButton[count] = new JToggleButton(new ImageIcon(active_puzzle.getPieces()[count].getPieceImage())); 
       puzzleButton[count].setLocation(200 + active_puzzle.getPieceWidth() * column + devider * column, 
               200 + active_puzzle.getPieceHeight() * row + devider * row); 
       puzzleButton[count].setContentAreaFilled(false); 
       puzzleButton[count].setBorderPainted(false); 
       puzzleButton[count].setBorder(null); 
       mainPuzzlerPanel.add(puzzleButton[count]); 
       mainPuzzlerPanel.validate(); 
       count++; 
      } 
     } 
     mainPuzzlerPanel.repaint(); 
    } 
} 

출력의 사진입니다 : http://i.imgur.com/Zdink2Q.png

enter image description here

죄송합니다 나는 당신에게 내 모든 코드 만 하겠어요의 큰 잘 나는 그렇게하지 않을거야 ...

미리 감사드립니다. 자세한 정보가 필요한지 물어보십시오!

내가 문제를 어떻게 해결하는지 보지 못한 사람들에게 나는 그것을 알았다.

private void loadPuzzleButtons() 
{ 
    if (active_puzzle != null) 
    { 
     int count = 0; 
     GridLayout puzzleLayout = new GridLayout(active_puzzle.getRows(),active_puzzle.getColumns(),3,3); 
     puzzlePanel.setLayout(puzzleLayout); 
     JToggleButton puzzleButton[] = new JToggleButton[active_puzzle.getNumberOfPieces()]; 
     for(int row = 0; row < active_puzzle.getRows(); row++) 
     { 
      for(int column = 0; column < active_puzzle.getColumns(); column++) 
      { 
       puzzleButton[count] = new JToggleButton(new ImageIcon(active_puzzle.getPieces()[count].getPieceImage())); 
       puzzleButton[count].setContentAreaFilled(false); 
       puzzleButton[count].setBorderPainted(false); 
       puzzleButton[count].setBorder(null); 
       puzzlePanel.add(puzzleButton[count]); 
       puzzlePanel.validate(); 
       count++; 
      } 
     } 
     puzzlePanel.repaint(); 
    } 
} 
+0

어떤 종류의 alingment를 찾으십니까? 거기에 모두 수평 정렬 – AwokeKnowing

+0

크기와 수량의 이러한 변화를 제외하고 상자 그리드처럼 그들을 배치하고있어 레이아웃을 수정할 수 없습니다. – visc

+0

@ user2925592, validate()가 아닌'revalidate()'를 사용해야하며 패널에 구성 요소를 추가 한 후에 만 ​​필요합니다. 따라서 revalidate()는 repaint() 바로 앞에 있어야합니다. – camickr

답변

0

.getcolumns 및 getrows 출력을하는 일. 시도 해봐. 내부 루프 내부에 열과 행을 출력하고 최소한 그 숫자를 올바르게 입력해야합니다. 너 행이 늘고 있니?

+0

그것은 그런 종류의 문제가 아닙니다. 그게 ... – visc

관련 문제