Problem mit JPanel

icon15

Mitglied
Hallo,
ich verzweifle gerade an einer Prüfungsaufgabe.

Und zwar soll eine Sudoku GUI erstellt werden.
Gegeben ist folgender Code:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Feld extends JButton {
private int zahl;
Feld(int zahl) {
setPreferredSize(new Dimension(50,50));
setBackground(Color.CYAN);
this.zahl = zahl;
if (zahl != 0) setText("" + zahl);
}
}
class Sudoku extends JFrame {
private JPanel[][] panels = new JPanel[3][3];
public static void main(String[] args) {
new Sudoku(new int[][] {
{0,1,8, 7,0,0, 0,0,0},
{0,2,0, 6,0,0, 4,8,5},
{0,3,4, 5,0,0, 7,0,2},
{0,0,0, 0,0,0, 6,3,1},
{0,0,0, 0,0,0, 0,0,0},
{1,8,5, 0,0,0, 0,0,0},
{2,0,7, 0,0,3, 1,4,0},
{3,4,6, 0,0,8, 0,7,0},
{0,0,0, 0,0,2, 5,6,0},
});
}
}

Ich habe für jedes JPanel in panels ein JPanel erstellt mit GridLayout(3,3).
Jedoch weiß ich jetzt nicht wie ich alle 9 Felder darstellen kann. Es wird immer nur ein 3x3 Feld ausgegeben.
Mein Code:
Java:
	public Sudoku(int panels [][])
	{
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		int j = 0; int k=0;
		
		while(j < 3)
		{
			while(k < 3)
			{
				this.panels[j][k] = new JPanel(new GridLayout(3,3));
				k++;
			}
			j++;
		}
		 
		 j=0; k=0; int a=0;
		 while(j < 3)
		 {
			 while(k < 3)
			 {
				 while(a < 9)
				 {
					 this.panels[j][k].add(new Feld(5));
					 a++;
				 }
				 this.add(this.panels[j][k]);
				 k++;
			 } 
			 j++;
		 }
		
		pack();
		setVisible(true);
	}

Ich denke das Problem liegt an this.add. Da ich hier kein BoarderLayout angeben habe. Hoffe ihr könnt mir helfen.
Danke
 

Zurück
Oben