Noch eins: TextFeldArray hinzufügen

Status
Nicht offen für weitere Antworten.
M

Munich4Me

Gast
Ich würde gern eine Matrix aus 81 Textfeldern machen (>Sudoku<), die aus einem Array sind: tf[9][9] (also von [tf[0][0] bis tf[8][8]).

Nun zwei Fragen: Was mache ich da ideal für ein Layout, damit es aussieht wie bei einem Sudoku-Rätsel

Zweitens: Wie füge ich die optimal hinzu? Ich hatte zuerst im public boolean:
Code:
for (i=1; i<=9; i++)
{
	for (j=1; j>=9; j++)
	{
		tf[i][j] = new TextField(1);
		add(tf[i][j]);
	}
}

Aber so scheint das nicht zu gehen und im public-void-teil ist eine for-schleife ja nicht erlaubt.

Und ein
Code:
add(tf[0][0]);
add(tf[0][1]);
...
add(tf[8][8]);
funktioniert auch nicht.

MfG Colin
 

lin

Top Contributor
Layout GridLayout

Code:
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Sudoku extends JFrame {

	public Sudoku() {
		JPanel pane = new JPanel(new GridLayout(9,9));
		
		JTextField tf[][] = new JTextField[9][9];
		
		for (int i = 0; i < tf.length; i++) {
			for (int j = 0; j<tf[i].length; j++) {
				tf[i][j] = new JTextField(1);
				pane.add(tf[i][j]);
			}
		}
		
		add("Center", pane);
		pack();
	}

	public static void main(String[] args) {
		new Sudoku().setVisible(true);
	}

}
 
M

Munich4Me

Gast
Danke, ich werd das gleich mal ausprobieren.

PS: Wie schnell seid ihr eigentlich??? Wahnsinn!
 

Leroy42

Top Contributor
Munich4Me hat gesagt.:
for (j=1; j>=9; j++)
kann ja auch nicht gehen :cool:

Wäre es für Sudoku nicht angebrachter neun GridLayouts jeweils
mit eigenem Border zu nehmen, damit die 9 verschieden Unterteilungen
besser zu erkennen sind ???:L
 

lin

Top Contributor
ja, stimmt, hab mir auch grad noch überlegt, wie das vom Layout her am besten zu machen ist...
Sudoku hat ja auch noch da die dicken Linien die das ganze Feld in 3*3 kleinere Felder unterteilen... Vielleicht bist du mit dem TableLayout besser bedient.. https://tablelayout.dev.java.net/
 
M

Munich4Me

Gast
:bahnhof:

Also irgendwie check ich jetzt gar nicht mehr durch - mit den JFrames und anderen J-Objekten habe ich noch nie gern gearbeitet.

Ich weiß das kostet viel Server und ich weiß gar nicht ob man das jetzt gleich überhaupt lesen kann aber ich setz mal den ganzen Code rein - ich seh halt irgendwie den Wald vor Bäumen nicht mehr.

Code:
import java.applet.*;
import java.awt.GridLayout; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField;

public class sudoku extends JFrame
{
	int x,y,z;
	int i,j,k;
	int t,s,r;
	int a[][][]=new int[10][10][10]; //Array von [0][0][0] - [9][9][9]
								   //0.1.1 - 0.9.9 Ergebnis,
								   //1.1.1 - 9.9.9 Möglichkeiten
	public sudoku()
	{ 
		JPanel pane = new JPanel(new GridLayout(9,9)); 
	   	JTextField tf[][] = new JTextField[9][9];
	   	JTextField ausgabe = new JTextField(5);
		JButton BtLos = new JButton("versuchen");
		JButton BtLoesen = new BJutton("lösen");
 
		for (int i = 0; i < tf.length; i++)
		{ 
			for (int j = 0; j<tf[i].length; j++)
			{ 
	        	tf[i][j] = new JTextField(1); 
	        	pane.add(tf[i][j]); 
	     	} 
	  	} 
		add("Center", pane); 
		pack(); 
	} 
	
	public static void main(String[] args)
	{ 
	  new sudoku().setVisible(true); 
	} 

	public void init()
	{
		add(BtLos);
		add(ausgabe);
		add(BtLoesen);
	}
	public boolean action(Event e, Object o)
	{	
		for (i=1; i<=9; i++)		   
		{							   
			for (j=0; j<=8; j++)
			{
				if (tf[i][j] == null)
				{
					a[0][i][j] = 0;
				}
				else
				{
					a[0][i+1][j+1] = Integer.parseInt(tf[i][j].getText());
					tf[i][j].setEditable(false);
				}
				for (k=1; k<=9; k++)
				{
					a[i][j][k] = 1;
				}
			}
		}
		if (e.target == BtLos)
		{
			for (x=1; x<=9; x++)
			{
				for (y=1; y<=9; y++)
				{
					for (z=1; z<=9; z++)
					{
						if (a[0][x][y] == z)
						{
							for (i=1; i<=9; i++)
							{
								if(z == i)
								{
									a[x][y][i] = 2;
								}
								else
								{
									a[x][y][i] = 0;
								}
							}
						}
					}
				}
			}
			t=0;
			do
			{
				for (x=1; x<=9; x++)
				{
					for (y=1; y<=9; y++)
					{
						for (z=1; z<=9; z++)
						{
							if (a[x][y][z] == 2)
							{
								for (i=1; i<=9; i++)
								{
									if (x == 1)
									{
										for (j=1; j<=9; j++)
										{
											if (y != j)
											{
												a[i][j][z] = 0;
											}
										}
									}
								}
								for (j=1; j<=9; j++)
								{
									if (y == j)
									{
										for (i=1; i<=9; i++)
										{
											if (x != i)
											{
												a[i][j][z] = 0;
											}
										}
									}
								}
								s=x-((x-1)%3);
								r=y-((y-y)%3);
								
								for (i=s; i<=(s+2); i++)
								{
									for (j=r; j<=(r+1); j++)
									{
										if (a[0][i][j] != a[0][x][y])
										{
											a[i][j][z] = 0;
										}
									}
								}
							}
						}
					}
				}
				for (x=1; x<=9; x++)
				{
					for (y=1; y<=9; y++)
					{
						for (z=1; z<=9; z++)
						{
							if (a[x][y][z] == 2)
							{
								a[0][x][y] = z;
							}
							i=0;
							for (j=1; j<=9; j++)
							{
								if (a[x][y][j] == 1)
								{
									i=i+1;
								}
							}
							if (i == 1)
							{
								for (i=1; i<=9; i++)
								{
									if(a[x][y][i] == 1)
									{
										a[x][y][i] = 2;
										a[0][x][y] = i;
										t++;
									}
								}
							}
						}
					}
				}
			}
			while (t!=0);
			
			t=0;
			for (i=1; i<=9; i++)
			{
				for (j=1; j<=9; j++)
				{
					if (a[0][i][j] == 0)
					{
						t++;
					}
				}
			}
			if (t==0)
			{
				ausgabe.setText("lösbar");
			}
			else
			{
				ausgabe.setText("nicht lösbar");
			}
		}
		if (e.target == BtLoesen)
		{
			for (i=1; i<=9; i++)
			{
				for (j=1; j<=9; j++)
				{
					tf[i-1][j-1].setText(String.valueOf(a[0][i][j]));
				}
			}
			ausgabe.setText("fertig");
		}
		return true;
	}
}

Danke!
 
M

Munich4Me

Gast
Ich mein es muss doch möglich sein die Textfelder irgendwie einfacher hinzuzufügen, ohne alle einzeln machen zu müssen und ohne alles umschreiben zu müssen, oder?
 
M

Munich4Me

Gast
Ach PS: Das hier ist meine Orginalversion:

Code:
import java.awt.*;
import java.applet.*;

public class sudoku extends Applet
{
	int x,y,z;
	int i,j,k;
	int t,s,r;
	int a[][][]=new int[10][10][10]; //Array von [0][0][0] - [9][9][9]
								   //0.1.1 - 0.9.9 Ergebnis,
								   //1.1.1 - 9.9.9 Möglichkeiten
	TextField tf[][] = new TextField[9][9];	//tf[0][0] - tf[8][8]
	TextField ausgabe = new TextField(5);
	Button BtLos = new Button("versuchen");
	Button BtLoesen = new Button("lösen");
	GridLayout lay = new GridLayout(11,9);
	public void init()
	{
		setBackground(Color.yellow);
		setLayout(lay);
		add(BtLos);
		add(ausgabe);
		add(BtLoesen);	
	}
	public boolean action(Event e, Object o)
	{
		for (i=0; i<=8; i++)
		{
			for (j=0; j<=8; j++)
			{
				tf[i][j] = new TextField(1);
				add(tf[i][j]);
			}
		}

und danach gehts wie oben in Zeile 48 weiter. Am liebsten wärs mir ja wenns so ähnlich bleiben könnte denn so versteh ichs *g*
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
S Ist das noch Insertionsort? Java Basics - Anfänger-Themen 3
O Warum will die MEthode noch am Ende einr eturn Java Basics - Anfänger-Themen 10
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
P Cäsear verschlüsselung irgendwas passt noch nicht Java Basics - Anfänger-Themen 2
B java.util.Date noch zeitgemäß? Java Basics - Anfänger-Themen 6
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Noch eine Frage zur Rekursion... Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
M Variable noch erstellen oder lieber so? Java Basics - Anfänger-Themen 1
V Bin eigentlich noch VOR dem Anfang .... Java Basics - Anfänger-Themen 9
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Noch immer Probleme mit exec Java Basics - Anfänger-Themen 15
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
M Java von kopf bis Fuß noch zeitgemäß ? Java Basics - Anfänger-Themen 18
S noch ein ArrayIndexOutOfBoundsException Fehler Java Basics - Anfänger-Themen 2
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
S Musik einfügen funktioniert noch nicht Java Basics - Anfänger-Themen 6
P Noch zum Thema Arrays Java Basics - Anfänger-Themen 13
K Wofür wird heute noch die Stack Klasse in Java genutzt Java Basics - Anfänger-Themen 4
O Noch einmal Methoden Java Basics - Anfänger-Themen 9
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
C Threads Auffindung noch laufender Programmteile Java Basics - Anfänger-Themen 2
M Weder Consolenausgabe noch Fehlermeldung! Java Basics - Anfänger-Themen 5
E Prüfen, ob entfernte JVM noch aktiv ist? Java Basics - Anfänger-Themen 5
S ArrayList nur ergänzen wenn Element noch nicht vorhanden Java Basics - Anfänger-Themen 4
J Wie java programm noch schneller machen? Java Basics - Anfänger-Themen 30
C Umsteiger hat noch ein paar Fragen Java Basics - Anfänger-Themen 11
M immer noch usedelimiter Java Basics - Anfänger-Themen 4
M file löschen, streams evtl noch offen Java Basics - Anfänger-Themen 7
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
K Bestehenden Chat modifizieren (noch ein Anfänger!) Java Basics - Anfänger-Themen 7
C Hilfe!!! Ich werd noch wahnsinnig... Java Basics - Anfänger-Themen 3
I Module und Testumgebung noch nicht verstanden... Java Basics - Anfänger-Themen 6
G Weder IE noch Firefox zeigen mir Java Applets an Java Basics - Anfänger-Themen 5
K Scrollpane - versteh nur noch Fragezeichen Java Basics - Anfänger-Themen 6
K Alle noch nicht umgedrehte Karten umdrehen ? Java Basics - Anfänger-Themen 2
S @ override + noch was Java Basics - Anfänger-Themen 3
D Kann noch fast nichts, funktioniert auch fast nichts! Java Basics - Anfänger-Themen 8
K Hier noch ein Konstruktor aufbauen Java Basics - Anfänger-Themen 6
G Threads prüfen, ob diese noch laufen. Java Basics - Anfänger-Themen 3
S Wie runden man noch mal auf bestimmte stellen? Java Basics - Anfänger-Themen 8
N Ich habs immer noch nicht hinbekommen :( Java Basics - Anfänger-Themen 3
D noch ein kleines Problem Java Basics - Anfänger-Themen 4
M OOP und ich - irgendwie verträgt sich das noch nicht. Java Basics - Anfänger-Themen 6
F jbutton and noch was^^ Java Basics - Anfänger-Themen 15
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
R Noch eine Frage: Breite des Applets im Browser ermitteln Java Basics - Anfänger-Themen 7
G Array-Länge bei Erzeugung noch unbekannt - wie erzeugen? Java Basics - Anfänger-Themen 12
T Binärbaum - noch ein "klitzekleiner Fehler" Java Basics - Anfänger-Themen 4
P Textdateischreiben, etwas fehlt noch bzw. 1 error kommt Java Basics - Anfänger-Themen 4
L Noch immer Threat-Problem Java Basics - Anfänger-Themen 8
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
J Noch ein Parser Problem Java Basics - Anfänger-Themen 7
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
C Abfragen, ob Objekt noch existiert Java Basics - Anfänger-Themen 5
A wieviel platz ist noch frei? Java Basics - Anfänger-Themen 2
J objektorientiert - noch immer nicht begriffen Java Basics - Anfänger-Themen 6
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
M Testen ob ein Sample noch abgespielt wird Java Basics - Anfänger-Themen 6
N Mittelwert (fast fertig, nur noch 2 fehler ;-) ) Java Basics - Anfänger-Themen 14
N Und noch eine Frage über getRuntime() Java Basics - Anfänger-Themen 4
D Programm läuft - trotzdem noch ein Fehler drin. Java Basics - Anfänger-Themen 21
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
S Noch ungelöst ! Klasse JTable und Klasse Drucken verknüpfen. Java Basics - Anfänger-Themen 8
A Noch ein Anfänger..... Java Basics - Anfänger-Themen 7
M Und noch eine Java Basics - Anfänger-Themen 2
G Fenster maximieren? Suche genutzt geht aber noch nich :( Java Basics - Anfänger-Themen 16
A noch mal bitoperater Java Basics - Anfänger-Themen 2
O 2d Array einmal Eins Java Basics - Anfänger-Themen 2
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
L Wie vergrößere ich ein Rechteck in alle Richtungen um eins und bekomme dessen Rand? Java Basics - Anfänger-Themen 2
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
IMain23 2d Array variabler Spaltenwert, Spaltenwert immer um eins erhöhen Java Basics - Anfänger-Themen 3
W Interpreter-Fehler boolean nur eins darf wahr sein Java Basics - Anfänger-Themen 11
E Methode aus Klasse eins in Klasse zwei verwenden? Java Basics - Anfänger-Themen 2
Z Zwei Images auf einem JFrame - Aber nur eins wird angezeigt! Java Basics - Anfänger-Themen 5
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
A Java Arrays immer um eins "vergrößern" Java Basics - Anfänger-Themen 4
M Inhalt eines Strings um eins hochzählen Java Basics - Anfänger-Themen 19
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben