Swing Von 2 dimensionalem Array auf JTextfield schließen und färben

Nikon23

Mitglied
Moinmoin,

ich hab ein kleines Problem mit einem 4gewinnt Spiel, das ich programmieren soll.
Ich bin soweit, dass alles läuft, auch die Überprüfung, ob man gewonnen hat ist kein Problem. Das einzige was mir sorgen macht ist die grafische Darstellung.

Ich habe es so gelöst, dass ich ein 2 dimensionales Array habe und ich JTextfields habe (vorgabe des Lehrers), die sich färben sollen, wenn ein Spieler einen Stein in das jeweilige Feld geworfen hat. Mein Problem ist nun, dass ich 42 if-Abfragen machen müsste,wenn mir keine schlaue Schleife einfällt.

Mein Ansatz sieht so aus:
Man bekommt x als Wert übergeben, sprich in welche Spalte der Stein fallen soll. Dann überprüfe ich in welche Zeile er muss (i) und dann soll er dieses JTextfield färben.
Ich hab die JTextFields so genannt, wie das Array sie quasi vorgibt, also feld00 ist ganz unten links, feld01 ist ein drüber etc. saz ist in diesem Fall der Wert, ob Spieler 1 oder 2 den Stein wirft.
[Java]
public void wert (int x, int saz){
for (int i=0; i < 6; i++){
if (feld[x] == 0){
feld[x] = saz;
String a = (new Integer(x)).toString();
String b = (new Integer(i)).toString();
String c = "feld"+a+b;
c.Background(Color.RED);

return;
}
}
}
[/Java]

Ich weiß, dass es mit c.Background.. nicht funktioniert, aber das ist so meine Idee, sprich meine Frage ist, ob man aus diesem String c wieder einen namen für das JTextfield machen könnte, dass ich den Befehl so verwenden kann.
Ich würde ungern den ganzen Quellcode umschreiben, da wir auch noch nicht so viel zu Java gelernt haben. (Informatik 13. Klasse)

Ich hoffe jemand hat eine zündende Idee :).

Danke schonmal im voraus

Gruß Nikon
 
Zuletzt bearbeitet:

Nikon23

Mitglied
Hm google war da jetzt nicht wirklich mein Freund. Ich finde keine Anleitung wie man ein 2-dimensionales JTextField Array baut und die dann auch noch in der grafischen Oberfläche verschieben kann, so dass daraus ein 4gewinnt Spielfeld wird.

Ich denke mal man initialisiert das auch wieder so:

JTextField[][] textfeld = new JTextField[7][6];

Erstens ist meine Frage nun, wie ich in der grafischen Oberfläche diese 42 Textfelder verschiebe/einteile und zweitens wie ich die Felder färbe an Hand meiner for Schleife, denn
textfeld[x].Background(Color.RED);
oder
textfeld[x].setBackground(Color.RED);
ergibt nur Fehler :)
 
Zuletzt bearbeitet:

Eldorado

Bekanntes Mitglied
Du musst die einzelnen Textfelder natürlich noch instantiieren, also:
Java:
textfeld[x][i] = new JTextField();
du erstellst hier nur ein array, das Textfelder aufnehmen kann.
 

Nikon23

Mitglied
Also mein Code sieht jetzt wie folgt aus:
[Java]
public class viergewinnt extends JFrame {
int[][] feld = new int[7][6];
JTextField[][] textfeld = new JTextField[7][6];
String spieler1;
String spieler2;
int saz = 1; // SpielerAmZug

...

// Anfang Komponenten

feld00.setBounds(80, 224, 33, 24);
feld00.setText("");
cp.add(feld00);
textfeld[0][0] = new JTextField();
textfeld[0][0] = feld00;

[/Java]

Was auch ohne Probleme läuft. Wenn ich nun aber die Hintergrundfarbe ändern möchte in der Schleife mit:

[Java]textfeld[x].Background(Color.RED);[/Java]

krige ich als Fehlermeldung:
[Java]
Compiliere C:\Users\Nikon\Downloads\viergewinnt\viergewinnt.java mit Java-Compiler
viergewinnt.java:134:24: cannot find symbol
symbol : method Background(java.awt.Color)
location: class javax.swing.JTextField
textfeld[x].Background(Color.RED);
^
1 error
[/Java]

Ist das nur ein falscher Syntax oder wo muss die Instanzierung hin? Mir bringt das ja nichts in der for-Schleife, da ich dann zwar das Feld befülle aber ich dann keine feld00, feld01, feld02 etc. dem Array vorher zuweisen kann oder?

EDIT:
Ah, ok mit einem setBackgroundcolor löst sich alles in Wohlgefallen auf ;).

Naja fast alles^^

[Java]
feld00.setBounds(80, 224, 33, 24);
feld00.setText("");
cp.add(feld00);
textfeld[0][0] = new JTextField();
textfeld[0][0] = feld00;

feld01.setBounds(80, 192, 33, 24);
feld01.setText("");
cp.add(feld01);
textfeld[0][1] = new JTextField();
textfeld[0][1] = feld01;

feld02.setBounds(80, 160, 33, 24);
feld02.setText("");
cp.add(feld02);
textfeld[0][2] = new JTextField();
textfeld[0][2] = feld02;

feld03.setBounds(80, 128, 33, 24);
feld03.setText("");
cp.add(feld03);
textfeld[0][3] = new JTextField();
textfeld[0][3] = feld03;

feld04.setBounds(80, 96, 33, 24);
feld04.setText("");
cp.add(feld04);
textfeld[0][4] = new JTextField();
textfeld[0][4] = feld04;

feld05.setBounds(80, 64, 33, 24);
feld05.setText("");
cp.add(feld05);
textfeld[0][5] = new JTextField();
textfeld[0][5] = feld05;
[/Java]

Da hat nicht zufällig jemand ne Idee das schlau und schön zu machen? :/
 
Zuletzt bearbeitet:
A

A0027301

Gast
Das wird

textfeld[0][0] = new JTextField();
textfeld[0][0] = feld00;

wohl schiefgehen. Da wird wohl erst das Array mit dem JTextfield belegt und dann gleich mit dem feld überschrieben. Wenn dann bräuchstest du 2 zweidimensionale Array. Das eine hält dein Feld, das andere dein JTextField.

Eine andere Lösung ist eine ein Klasse Feld zu entwerfen, die alle Infos für ein Feld enthält
- JTextField
- Spieler
- Wert
- Farbe
- Größe
- .....

Diese Klasse kannst du dann in einem 2 dim. Array halten.
Ersatzweise auch in einer ArrayList, in dem du eine Umrechnung von den 2 dim Koordinaten (X und Y) in ein 1 dim Liste vornimmst. Hast du ein 5 x 5 Feld errechnet sich die Position in der Liste - je nach dem wie du die Daten in die Liste geschrieben hat (X/Y) - bsp mit (x*5)+Y
 

Nikon23

Mitglied
Hm also so wie ich es geschrieben hab funktioniert es auf jeden Fall, die Frage ist halt nur, ob das schöner/schmaler geht. Aber da ist wohl der Ansatz zu verkorkst für :D.

Auf jeden Fall danke für die Hilfe und das Thema ist damit erledigt. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Grauwerte aus 3-Dimensionalem Array in Bild AWT, Swing, JavaFX & SWT 9
izoards JavaFX TableView mit Array Inhalt füllen AWT, Swing, JavaFX & SWT 1
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
A 2d array AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
M Swing Objekt Array in GUI ausgeben AWT, Swing, JavaFX & SWT 1
N Array mit JavaFX Elementen AWT, Swing, JavaFX & SWT 9
H Aus Array Container Panel an Tabbedpane zuweisen AWT, Swing, JavaFX & SWT 29
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
J index im Array aussuchen AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
G JavaFX Fenster 1 Array übertragen zur Fenster 2 AWT, Swing, JavaFX & SWT 0
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
F JList auffüllen aus Array von Instanzen AWT, Swing, JavaFX & SWT 4
kilopack15 JLabels im Array erzeugen AWT, Swing, JavaFX & SWT 2
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
M JavaFX - Array in View auslesen AWT, Swing, JavaFX & SWT 12
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
beatles Swing JTextField - Game Status aus Array anzeigen AWT, Swing, JavaFX & SWT 3
KilledByCheese Swing 2D JLabel Array Maze zeichnen AWT, Swing, JavaFX & SWT 2
Viktim Array Spielfeld wird in GUI gedreht AWT, Swing, JavaFX & SWT 5
T JTextField Array im JPanel wird nicht komplett angezeigt AWT, Swing, JavaFX & SWT 7
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
L JComponents in Array AWT, Swing, JavaFX & SWT 11
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
B Array Java AWT, Swing, JavaFX & SWT 0
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
K Array von einer Action zur anderen bringen AWT, Swing, JavaFX & SWT 7
D Swing ArrayList in Jlist/ List oder Array in JList/List AWT, Swing, JavaFX & SWT 5
O 2D Weltgenerieren - 2D Array AWT, Swing, JavaFX & SWT 1
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
H Image im Array per Knopfdruck ändern AWT, Swing, JavaFX & SWT 6
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
F Swing Java Swing Array in Datei und wieder raus AWT, Swing, JavaFX & SWT 7
L 2D-Grafik PNG Datei in JLabel Array Problem AWT, Swing, JavaFX & SWT 4
R Array aus einem Objekt auslesen AWT, Swing, JavaFX & SWT 4
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
A Array von JLabel mit Grafiken anzeigen AWT, Swing, JavaFX & SWT 3
J 2D-Grafik String aus array wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S Swing Jcombobox und array AWT, Swing, JavaFX & SWT 6
M Swing Array aus anderer Klasse AWT, Swing, JavaFX & SWT 6
M Array grafisch darstellen AWT, Swing, JavaFX & SWT 9
P 2D-Grafik versch. Rectangles aus array von textfelder zeichen AWT, Swing, JavaFX & SWT 6
V Swing Componenten Array AWT, Swing, JavaFX & SWT 3
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
B Swing JMenuButtons mit Funktionen aus Array erstellen AWT, Swing, JavaFX & SWT 4
A JComboBox-Inhalt durch neues Array ersetzen AWT, Swing, JavaFX & SWT 2
A JButton in einem Array aktualisieren AWT, Swing, JavaFX & SWT 8
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
S String Array Ausgabe im JLabel ??? AWT, Swing, JavaFX & SWT 8
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
H 2D-Grafik BufferedImage aus Integer-Array AWT, Swing, JavaFX & SWT 3
H Puzzle - Listen erstellen, array & liste vergleichen AWT, Swing, JavaFX & SWT 28
H Puzzle - Erkennen wenn gelöst (array vergleichen) AWT, Swing, JavaFX & SWT 10
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
W Swing Bei einem 2-dimensionalen array, bei mouseClicked index zuordnen AWT, Swing, JavaFX & SWT 2
Jats Bitte um Hilfe bei JComboBox mit Array AWT, Swing, JavaFX & SWT 6
H JList zeigt die Daten aus dem Array nicht an! AWT, Swing, JavaFX & SWT 13
M Swing Zweidimensionales Array mit Farben erzeugen AWT, Swing, JavaFX & SWT 16
W Button Array ? AWT, Swing, JavaFX & SWT 10
X JLabel und mehrdimensionales Array AWT, Swing, JavaFX & SWT 2
T Swing 2d Array zeichnen AWT, Swing, JavaFX & SWT 4
M ArrayList in 2D Array umfüllen AWT, Swing, JavaFX & SWT 9
F Swing String Array mit JTextArea anzeigen AWT, Swing, JavaFX & SWT 13
E ResultSet als Array an JTable übergeben AWT, Swing, JavaFX & SWT 9
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
D Pixel in ein Array einlesen AWT, Swing, JavaFX & SWT 2
S Koordinaten aus Array verwenden zum zeichnen auf JPanel?! AWT, Swing, JavaFX & SWT 3
Developer_X Verzwicktes Problemchen mit Panel-Array AWT, Swing, JavaFX & SWT 5
JavaKaffee Array auslesen in jTextPane? AWT, Swing, JavaFX & SWT 9
N Swing Problem beim Einlesen von Jtable in Array AWT, Swing, JavaFX & SWT 5
S Swing ComboBox aus Array befüllen AWT, Swing, JavaFX & SWT 2
T Swing JTable und mehrdimensionales Array AWT, Swing, JavaFX & SWT 2
D Verschiedene ActionEvents für ein JButton-Array AWT, Swing, JavaFX & SWT 2
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
W Objekt-array als Raster visualisieren AWT, Swing, JavaFX & SWT 3
C JPanel-Array in GridLayout AWT, Swing, JavaFX & SWT 4
S Array+INfoBox AWT, Swing, JavaFX & SWT 7
A Array wird im JOptionPane mehrfach ausgegeben AWT, Swing, JavaFX & SWT 3
B JButton+Array AWT, Swing, JavaFX & SWT 2
R zweidim. JButton-Array in Schleife -> NullPointerExceptio AWT, Swing, JavaFX & SWT 2
D Fehler bei Button Array AWT, Swing, JavaFX & SWT 8
S Suchen im String-Array AWT, Swing, JavaFX & SWT 3
M Separator in Array AWT, Swing, JavaFX & SWT 8
C Out of Bounds Exception, Array of JTextField AWT, Swing, JavaFX & SWT 6
C JButton Array - ActionListener AWT, Swing, JavaFX & SWT 10
S SimpleAttributeSet / Array AWT, Swing, JavaFX & SWT 3
B JButton array und ActionListener AWT, Swing, JavaFX & SWT 2
G JTextArea Objekte in einem Array speichern? AWT, Swing, JavaFX & SWT 3
S Großes Array Problem AWT, Swing, JavaFX & SWT 10
G Listener (anonyme Klasse) jedem Element eines Array zuweisen AWT, Swing, JavaFX & SWT 5
S array to int? AWT, Swing, JavaFX & SWT 9
T Textfelder als Klasse im Array? AWT, Swing, JavaFX & SWT 3
N Image Array einer anderen Klasse bearbeiten AWT, Swing, JavaFX & SWT 2
S Zweidimensionales Array - JToggleButton AWT, Swing, JavaFX & SWT 3
G Textfeld Auslesen und in Array schreiben (bei newline) AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben