2012-01-28 24 views
0

私はいくつかのアルゴリズムを学ぶためにJavaで数独プログラムを作っていますので、ユーザーは未解決の数独パズルを入力できるようにしてください。ここで私は81(9×9)の​​ボックスを作成している、これまで持っているものです。 JFrameでJTextFieldを整理する手助けが必要

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]); 
} 

私が得るすべてはただ1つの入力フィールドですが、私はこのプログラムを実行

。私はすべてのテキストフィールドを知って、初期化し、作成し、jframeに追加しました。私はこのレイアウトを混乱させる必要があることを知っているが、私はそれを行う方法がわからない。どんな助けも充当されます。

答えて

2

JPanelGridLayoutを使用してください。また

JTextField input[] = new JTextField[80]; 

80(いない81)テキストフィールドです。

更新:(サンプルコード)

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のボックスにgridlayoutを細分することができる方法はありますか? –

+0

いいえ。複数のJPanelを使用する必要があります。 –

1

違うLayoutの使用方法について不明な点がある場合はOracleのドキュメント上のa great tutorialがあります。コンポーネント自体をブラッシュアップしたい場合は、tutorialをチェックアウトすることもできます。 :)

PSは:それは私があまりにも眠くているかもしれないが、あなたが素晴らしい働いていない81

関連する問題