Hallo,
ich verzweifle gerade an einer Prüfungsaufgabe.
Und zwar soll eine Sudoku GUI erstellt werden.
Gegeben ist folgender Code:
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:
Ich denke das Problem liegt an this.add. Da ich hier kein BoarderLayout angeben habe. Hoffe ihr könnt mir helfen.
Danke
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