Char Array in fremder Klasse

Status
Nicht offen für weitere Antworten.

torfkop

Mitglied
Moin,
ich habe hier ein CharArray, welches ich in einer fremden Klasse mit JTable verwenden möchte.

Leider weiß ich nicht wie ich darauf zugreifen muss. Das ganze habe ich bisher mal provisorisch so implementiert.

Klasse des CharArrays:
Java:
public class Field implements Interface {
	int row = 6;
	int cols = 7;
	char sym = '0';

	private char[][] field = new char[row][cols];
	private int player;

	// Der Konstruktor Field gibt an, dass player mit 1 initialisiert wird.
	// Außerdem wird das Spielfeld mit der Größe 6x7 erzeugt.
	public Field() {
		this.player = 1;
		this.sym = 'x';
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < cols; j++) {
				field[i][j] = '0';

			}
		}
	}

	public String toString() {
		StringBuffer tmp = new StringBuffer();
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < cols; j++) {
				tmp = tmp.append(field[i][j]);

			}
			tmp = tmp.append("\r\n");
		}
		return tmp.toString();
	}

	/**
	 * Die Getter und Setter Methoden für Field und Player
	 * 
	 * @return field, player
	 */
	public char[][] getField() {
		return field;
	}

	public void setField(char[][] field) {
		this.field = field;
	}

	public void setField2(int i, int j, char c) {
		this.field[i][j] = c;
	}

	public int getPlayer() {
		return player;
	}

Und hier die Klasse des JTable

Java:
public class ArrayToGui {

	/** Creates a new instance of mitarray */
	public ArrayToGui() {
	}

	public void arraytogui(){
    
      field[][] data = new field[][]{
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '}
            {' ',' ',' ',' ',' ',' ',' '}
            {' ',' ',' ',' ',' ',' ',' '}
            {' ',' ',' ',' ',' ',' ',' '}
      };
      

      String[] title = new String[]{
            "0", "1", "2", "3", "4", "5", "6"
      };

Der Fehler dabei steckt in dem field[][]. Dort will ich das CharArray aufrufen. Kann mir jemand sagen wie das funktioniert?
 
S

SlaterB

Gast
es gibt die Klasse Field, darin ein char[][] field, schonmal schlecht dass das fast wie die Klasse heißt,
und dann noch in einer anderen Klasse ein field[][], ist dort field eine andere Klasse oder die Klasse Field oder soll das auch ein char[][] sein?
recht unverständlich,

in jedem Fall wäre es fast überall möglich, ein Field-Objekt zu erstellen:

Java:
Field f = new Field();
char[][] x = f.getField();
 

torfkop

Mitglied
Also in der Klasse Field ist ein char [][] field. Dieses field möchte ich in meiner GUI Klasse als char field in ein jTable einbinden und nun weiß ich nicht wie ich das dort korrekt aufrufen muss.
 

KrokoDiehl

Top Contributor
SlaterB hat es doch schon geschrieben: Du hast in deiner Field-Klasse einen Getter für dein char-Array. Damit kannst du darauf zugreifen.
Oder zielt deine Frage mehr dahin ab, wie du die einzelnen chars entsprechend in einer Tabelle darstellen kannst?
 

torfkop

Mitglied
Sorry hatte es irgendwie überlesen.

Hab das jetzt eingebaut und nun noch folgende Frage zu diesem Abschnit:

Java:
public void arraytogui(){
		Field f = new Field();
		char[][] field = f.getField();
		char[][] field =
		{
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '},
            {' ',' ',' ',' ',' ',' ',' '},

das zweite char[][] field = erzeugt einen Fehler, weil er sagt, dass der Name bereits existiert. Ich glaube ich habe dabei irgendwie einen Denkfehler. Ich wollte so nur erreichen, dass der die Werte aus dem char[][] field in das jTable einfügt.
 
S

SlaterB

Gast
Zuletzt bearbeitet von einem Moderator:

torfkop

Mitglied
Also ich versteh nicht ganz wie das hier gemeint ist: tableModel.hierSindDeineDaten(field);
Was sind in diesem Fall meine Daten? Mein Array? Das ist doch field!?!

Also ich beziehe diese aus:
Java:
	private char[][] field = new char[row][cols];
	private int player;

	// Der Konstruktor Field gibt an, dass player mit 1 initialisiert wird.
	// Außerdem wird das Spielfeld mit der Größe 6x7 erzeugt.
	public Field() {
		this.player = 1;
		this.sym = 'x';
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < cols; j++) {
				field[i][j] = '0';

			}
		}
	}

Oder versteh ich das jetzt falsch?
 
S

SlaterB

Gast
> tableModel.hierSindDeineDaten(field);
> Was sind in diesem Fall meine Daten? Mein Array? Das ist doch field!?!

genau, field sind die Daten und die werden als Parameter übergeben, was ist daran nicht zu verstehen?
die Methode hat natürlich nur einen Fantasienamen,
wie zuvor geschrieben: was du für eine Tabelle/ Model hast und wie du dem die Daten übergeben musst kann ich ja nicht erahnen,
 

torfkop

Mitglied
Ich glaub ich stelle mich dabei ein wenig dämlich an. Ich muss die Daten aus einer anderen Klasse holen. Er kennt meine Methode für die Daten nicht.
 

hdi

Top Contributor
Ich muss die Daten aus einer anderen Klasse holen.
Was meinst du jetzt mit Daten? "field" oder der tatsächliche Inhalt des arrays? Mit deinem Getter und Setter für field in deiner Field-Klasse sollte es auf jeden Fall kein Problem sein, die Daten von einer anderen Klasse zu holen bzw. zu setzen.
Er kennt meine Methode für die Daten nicht.
Hä?
 

torfkop

Mitglied
Hmm wie soll ich das versuchen zu erklären.

Also ich will hier:

Java:
public void arraytogui(){
		Field f = new Field();
		char[][] field = f.getField();
		TableModel.Field(field);
//		char[][] field =
//		{
//            {' ',' ',' ',' ',' ',' ',' '},
//            {' ',' ',' ',' ',' ',' ',' '},
//            {' ',' ',' ',' ',' ',' ',' '},
//            {' ',' ',' ',' ',' ',' ',' '},
//            {' ',' ',' ',' ',' ',' ',' '},
//            {' ',' ',' ',' ',' ',' ',' '},
      };
      

      String[] title = new String[]{
            "0", "1", "2", "3", "4", "5", "6"
      };

das mit Nullen generierte Array aus dem Konstruktor drin haben.

Die Klasse des Arrays:
Java:
public Field() {
		this.player = 1;
		this.sym = 'x';
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < cols; j++) {
				field[i][j] = '0';

			}
		}
	}

	public String toString() {
		StringBuffer tmp = new StringBuffer();
		for (int i = 0; i < row; i++) {
			for (int j = 0; j < cols; j++) {
				tmp = tmp.append(field[i][j]);

			}
			tmp = tmp.append("\r\n");
		}
		return tmp.toString();
	}

	/**
	 * Die Getter und Setter Methoden für Field und Player
	 * 
	 * @return field, player
	 */
	public char[][] getField() {
		return field;
	}

	public void setField(char[][] field) {
		this.field = field;
	}
 

hdi

Top Contributor
Was meinst du mit "drin haben"? Du hast es ja schon richtig gemacht, per Getter:

Java:
char[][] field = f.getField();

"field" ist jetzt das mit nullen initialisierte Array. Kein Grund da ein neues Array anzulegen.
Aber was du dann da mit dem Table machst sieht etwas komisch aus. Du müsstest sowas hier machen:

Java:
JTable table = new JTable(field);
myGui.add(table);

edit: Wobei das nur einmalig so funktioniert bzw. sinnvoll ist. Besser ist es ein TableModel zu verwenden für deine Daten. Lies dir mal das hier durch.
 
Zuletzt bearbeitet:

torfkop

Mitglied
Genau sowas suchte ich. Nur leider hab ich nun das große Problem, dass mein Array ein Char Array ist und deshalb so nicht funktioniert.
 
S

SlaterB

Gast
aufs Posting vom 16:10 bezogen:

wie schon in der allerersten Antwort geschrieben und danach auch von dir benutzt:
Java:
Field f = new Field();
char[][] x = f.getField();

es bringt nix, diese Frage zu wiederholen, ohne auf die gegebenen Lösungen einzugehen

-----

> Nur leider hab ich nun das große Problem, dass mein Array ein Char Array ist und deshalb so nicht funktioniert.

dass du eher ein String[][] brauchst hatte ich auch schon geschrieben ;)
 

torfkop

Mitglied
es lässt sich nur das ganze nicht zu einem String machen :(
Da müsste ich die komplette Logik des Programms ändern
 
S

SlaterB

Gast
du kannst doch kurz vor der Übergabe an die JTable das Array kopieren, inwiefern ist der Rest des Programms betroffen?
wäre schöner wenn der gleich mit String[][] arbeitet, aber nicht zwingend
 

torfkop

Mitglied
Also das soll die Oberfläche für ein 4-Gewinnt werden. Wenn ich nun das Array kopiere und daraus ein String Array mache, muss ich doch jedes Mal das Array vom ChartoString machen, damit überhaupt weiterhin geprüft werden kann, ob 4 Symbole in einer Reihe sind.
 

hdi

Top Contributor
Wenn das für ein Spiel sein soll wird sich dein Datenbestand eh dauernd ändern. Deshalb brauchst du ein veränderbares TableModel, und kannst den bisherigen Ansatz nicht verwenden. Den Link zum JTable tutorial von Sun hab ich dir ja gegeben. Lies es dir durch. Ansonsten gibt es in unserer FAQ-Rubrik auch noch ein sehr ausführliches Tutorial zu JTables.
 
S

SlaterB

Gast
die Anzeige in der JTable hat doch sicher mit dem Prüfen nichts zu tun,
falls du nicht visuelles Prüfen meinst,

wenn nur nach Benutzeraktion alle paar Sekunden eine Position geändert wird, wäre für die Aktualisierung ein neues Array alle paar Sekunden nicht dramatisch

Alternativen:
- parallel zum char[][] wird irgendwo auch ein einmaliges String[][] verwaltet, welches gleichmäßig mitgeändert wird,
auch nicht schön

- ein eigenes Model schreiben, welches direkt mit dem char[][] arbeitet und daraus on the fly Strings erstellt, wenn sie angefordert werden,
auch nicht viel besser, aber im Code schöner, allerdings schwer umzusetzen

oder doch lieber char[][] ganz weg und String[][] rein ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
D 2D Char Array into String Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
A char array wird überschrieben Java Basics - Anfänger-Themen 6
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
I char Array to String Java Basics - Anfänger-Themen 3
C (char) Array einlesen Java Basics - Anfänger-Themen 8
H char-Array Java Basics - Anfänger-Themen 22
C Methoden String in char Array Java Basics - Anfänger-Themen 3
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
A Char-Array erstellen Java Basics - Anfänger-Themen 35
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Bestimmen, wie oft ein Char in einem Array vorkommt Java Basics - Anfänger-Themen 2
C char array-positionstausch Java Basics - Anfänger-Themen 6
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
S For Schleife Char Array Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
B char Array mit ints Java Basics - Anfänger-Themen 7
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
S Array - index von Benutzer eingegebenen char ausgeben Java Basics - Anfänger-Themen 3
M char Array füllen Java Basics - Anfänger-Themen 2
H ArrayList mit char- Array befüllen Java Basics - Anfänger-Themen 12
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
D Char Array ab bestimmter Stelle in neuem Speichern Java Basics - Anfänger-Themen 13
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
C Leerzeichen im char Array setzen Java Basics - Anfänger-Themen 33
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
N Methode die String in char-Array wandelt!! Java Basics - Anfänger-Themen 11
D Erste Schritte String Array in char Array umwandeln? Java Basics - Anfänger-Themen 1
E Char-Array zu String Java Basics - Anfänger-Themen 2
M Datentypen Char Array in String Array gibt Probleme Java Basics - Anfänger-Themen 10
M Char-Array Problem Java Basics - Anfänger-Themen 6
F Char Array splitten Java Basics - Anfänger-Themen 5
S Mehrdimensionales Char-Array initialisieren Java Basics - Anfänger-Themen 17
S char Array in Character KlassenArray? Java Basics - Anfänger-Themen 24
Semox Datentypen Einlesen von char in Array schlägt unerwartet fehl Java Basics - Anfänger-Themen 4
H Datentypen char array in int umwandeln Java Basics - Anfänger-Themen 9
B Unterschied zwischen String & char Array? Java Basics - Anfänger-Themen 5
B Datentypen Char Array in einen String verwandeln? Java Basics - Anfänger-Themen 2
J char array eintraege geben Java Basics - Anfänger-Themen 2
S Char Array Werte in short variablen speichern Java Basics - Anfänger-Themen 4
P Array index per char suche auslesen Java Basics - Anfänger-Themen 3
M 2D char Array anzeigen Java Basics - Anfänger-Themen 4
G Zeichenkette in char-Array konvertieren Java Basics - Anfänger-Themen 13
M wie auf ein feld mit leerzeichen in einem char array prüfen? Java Basics - Anfänger-Themen 4
J String in char Array Java Basics - Anfänger-Themen 2
J Verständnisfrage zu Char-Array Java Basics - Anfänger-Themen 5
N String/char-array aus datei auslesen Java Basics - Anfänger-Themen 2
M char Array in int Array Java Basics - Anfänger-Themen 3
J Array - Vertauschen Problem mit char/int Java Basics - Anfänger-Themen 6
Jen Array einlesen, Int und Char Java Basics - Anfänger-Themen 57
J Char-Array mit variabler Länge zurückliefern. Java Basics - Anfänger-Themen 11
B Deklaration eines char-array Java Basics - Anfänger-Themen 2
F abc char array Java Basics - Anfänger-Themen 3
J char[] reverse Array Java Basics - Anfänger-Themen 9
G Zufällige Buchstaben in char-Array Java Basics - Anfänger-Themen 9
0 Häufigstes Zeichen in einem Char-Array ermitteln? Java Basics - Anfänger-Themen 6
M Char Array mit Sonderzeichen in String umwandeln Java Basics - Anfänger-Themen 21
T String als Array und Umwandlung in Char Java Basics - Anfänger-Themen 7
J StringBuffer-Objekt soll auf Char-Array zugreifen. Java Basics - Anfänger-Themen 4
F char to byte array Java Basics - Anfänger-Themen 8
G Char oder Byte Array mit unbekannter länge erstellen? Java Basics - Anfänger-Themen 1
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
G Char Array konvertieren Java Basics - Anfänger-Themen 7
megachucky probleme mit einem char-array. Java Basics - Anfänger-Themen 6
H char Array in String Java Basics - Anfänger-Themen 7
E Ziffer in char-Array Java Basics - Anfänger-Themen 2
S String in char-Array einfügen Java Basics - Anfänger-Themen 8
G Array und Char Java Basics - Anfänger-Themen 3
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
W char über die Konsole? Java Basics - Anfänger-Themen 7
C char c Java Basics - Anfänger-Themen 13
D String und char in String speichern Java Basics - Anfänger-Themen 5
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
A Datentyp char Java Basics - Anfänger-Themen 27
A Char und modulo Java Basics - Anfänger-Themen 8
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
D Datentypen Char deklaration Java Basics - Anfänger-Themen 4
J Java char.at() Probelm Java Basics - Anfänger-Themen 12
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
M Die länge von char Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben