Sudoku Gui

Java xyrse123

Bekanntes Mitglied
Hallo,
ich wollte meinen Sudoku Löser auch als GUI umsetzen, mir fehlt nur der Ansatz wie man ein Sudoku Feld grafisch darstellen könnte und das man es dann mit Zahlen füllen kann. Würde dafür sowas wie eine Tabelle oder Textfeld gehen?
 

JStein52

Top Contributor
Mit Swing würde ich da ein JPanel machen und darauf per Grid-Layout die entsprechende Anzahl JLabels positionieren. Die JLabels kannst du dann entsprechend beschriften
 

JStein52

Top Contributor
du gibst jedem Label einen eindeutigen Namen mit setName("..."), z.b. einfach durchnummerieren. Das hat nichts mit dem angezeigten Text zu tun. Dann fügst du sämtlichen JLabels einen MouseListener hinzu in diesem kannst du per getName() abprüfen welches Label angeklickt wurde. und du kannst dann mit setText("...") einen neuen Text anzeigen. natürlich musst du dann noch eine Abfrage einbauen welche Zahl auf das Label soll (z.B. eine JOptionPane)
Das wäre so grob die Idee.
 

JStein52

Top Contributor
Du kannst z.B. die Namen der Labels so wählen dass sie die Stellung im Gitter angeben. Der Name "8:5" wäre dann
das Label in Zeile 8, Spalte 5 und du erhältst diese Koordinaten durch:
Code:
label.getName().split(":")
du kannst dann die gesplitteten Teile noch mit parseInt(..) in eine Zahl umwandeln und hast die Koordinaten. mit denen kannst du dann in der ActionPerformed(...) irgendwas anfangen.
 

Java xyrse123

Bekanntes Mitglied
Ich habe jetzt Mal Labels und Buttons so in einem Großlayout angeordnet. Mir gefällt das mit Buttons besser weil man dann eine Abgrenzung sieht und bei den Labels nur Zahlen stehen. Mit den Buttons müsste es doch genau so funktionieren, oder was ist der Vorteil von diesen Labeln?
 

JStein52

Top Contributor
z.B. so:
Code:
            label.setBorder(LineBorder.createBlackLineBorder());
            label.setHorizontalAlignment(SwingConstants.CENTER);
umgibt jedes Label mit einem Rand und richtet die Beschriftung zentriert aus
 

Java xyrse123

Bekanntes Mitglied
Das funktioniert jetzt soweit, aber ich wollte noch eine Funktion machen das man das Sudoku auch drucken kann und da ist das mit den Buttons nicht wirklich optimal. Dazu wollte ich ein Sudokufeld zeichnen und dass man dann mit der Maus in die Felder gehen kann und dann die Zahlen von der Tastatur eingeben kann. Wie müsste das dann ungefähr aussehen?
 

truesoul

Top Contributor
Wie müsste das dann ungefähr aussehen?
:confused:

Da bekommt man das Gefühl dass andere für dich das Spiel programmieren sollen.

Du hast doch das Array mit dem du arbeiten könntest und das verwendest du eben um eine Textdatei zu erstellen mit ein gezeichneten Sudoku. Gelöst oder noch zu lösen.

Du könntest ja mal google anschmeißen und danach suchen wie man Textdateien erstellt.
Wie man drucken könnte usw.

Und in der Datei soll man mit der Maus interagieren oder wie soll man das verstehen?

Falls damit die GUI damit gemeint ist dann verwende Textfelder
 
Zuletzt bearbeitet:

Java xyrse123

Bekanntes Mitglied
Das war nicht wirklich meine Frage. Ich meinte nur wie man das Feld dann mit Zahlen füllen kann,also mit Maus und Tastatur. Und ich meinte du nur das allgemeine Vorgehen, ich wollte keinen fertigen Code.
 

truesoul

Top Contributor
Mit ein jpopupmenu könntest du es realisieren für die Maus.

Das funktioniert jetzt soweit, aber ich wollte noch eine Funktion machen das man das Sudoku auch drucken kann und da ist das mit den Buttons nicht wirklich optimal.

Darauf lieferte ich eine Lösungsvorschlag.

Dazu wollte ich ein Sudokufeld zeichnen und dass man dann mit der Maus in die Felder gehen kann und dann die Zahlen von der Tastatur eingeben kann

Darauf lieferte ich eine Möglichkeit.

Und wenn das nicht das war was du wolltest dann beschreibe es genauer. :)

Und ich zitierte genau deine Frage. Also war es doch deine Frage oder?
 

truesoul

Top Contributor
Zuletzt bearbeitet:

Java xyrse123

Bekanntes Mitglied
Ich wollte ein Sudokufeld auf einem Panel zeichnen und das man dann mit der Maus in die einzelnen Felder gehen kannund dann über dir Tastatur Zahlen eingeben kann. Meine Frage war wie man da vorgehen muss.
 

Ähnliche Java Themen


Oben