2012-01-28 1 views
0

일부 알고리즘을 배우기 위해 java에서 Sudoku 프로그램을 만들고 있으므로 사용자가 Sudoku 퍼즐을 입력 할 수 있기를 바랍니다. 여기에 내가 81 (9 × 9) 상자를 만듭니다 지금까지 무엇을 가지고 : JFrame에서 JTextFields를 배열하는 데 도움이 필요합니다.

JTextField input[] = new JTextField[80]; 
for(int i = 0; i <= 79; i++) 
{ 
    input[i] = new JTextField(); 
    input[i].setPreferredSize(new Dimension(30,30)); 
    f.getContentPane().add(input[i]); 
} 

내가 얻을 모두가 하나 개의 입력 필드 비록 내가이 프로그램을 실행

. 나는 모든 텍스트 필드를 알고 초기화하고 생성하여 jframe에 추가했습니다. 이 레이아웃을 엉망으로 처리해야한다는 것을 알고 있지만 어떻게해야할지 모르겠습니다. 어떤 도움도 충당됩니다.

답변

2

JPanelGridLayout을 사용하십시오. 또한

:

80 (되지 81)의 텍스트 필드
JTextField input[] = new JTextField[80]; 

.

업데이트 : (샘플 코드)는 Layout의 다른 오라클 문서에 a great tutorial가 사용하는 방법에 대한 확실하지 않은 경우

public class SodokuBoardDemo { 

    public static void main(String... args) { 
     SudokuBoard board = new SudokuBoard();  
     JFrame frame = new JFrame("Sodoku"); 
     frame.add(board); 
     frame.pack(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLocationRelativeTo(null);    
     frame.setVisible(true); 
    } 

    public static class SudokuBoard extends JPanel { 

     public SudokuBoard() { 
      setBorder(BorderFactory.createLineBorder(Color.GRAY)); 
      setLayout(new GridLayout(3, 3)); 
      BoardPart input[] = new BoardPart[9]; 
      for (int i = 0; i < 9; i++) { 
       input[i] = new BoardPart(); 
       add(input[i]); 
      } 
     } 

     public static class BoardPart extends JPanel { 

      public BoardPart() { 
       setBorder(BorderFactory.createLineBorder(Color.GRAY)); 
       setLayout(new GridLayout(3, 3)); 
       JTextField input[] = new JTextField[9]; 
       for (int i = 0; i < 9; i++) { 
        input[i] = new JTextField(); 
        input[i].setPreferredSize(new Dimension(30, 30)); 
        add(input[i]); 
       } 
      } 
     } 
    } 
} 
+0

감사를, 80 개 텍스트 필드를 만든 것으로 생각된다, 난 그냥 내 루프 전에 추가 : f.setLayout (새로운 GridLayout (9,9)); –

+0

또한 9x3 상자로 그리드 레이 아웃을 세분화 할 수있는 방법이 있습니까? –

+0

아니요. 여러 JPanel을 사용해야합니다. –

1

. 구성 요소 자체를 브러시로 처리하려면 tutorial을 확인하십시오. :)

PS : 그것은 나를 너무 졸린 인이 될 수도 있지만 당신이 훌륭한 일을하지 (81)

관련 문제