Überschreiben von JPanels funktioniert nicht!

Marco7757

Aktives Mitglied
Ich baue mir gerade ein Game zusammen, bei dem man immer drei "Kärtchen" aufdecken muss. Wenn es die richtigen sind, hat man gewonnen.
In diesem Fall möchte ich alle Kärtchen (jedes Kärtchen ist ein JPanel, 7x7 an der Zahl) durch neue ersetzen, damit man gleich mit dem nächsten Spiel fortfahren kann.
Allerdings funktioniert das nicht, und ich sehe nur eine graue Fläche ...

Die JPanels sind im Array card[] gespeichert. Mit folgendem Code nun versuche ich, alle JPanels zuerst zu entfernen (remove) und danach die neuen Daten zu setzen und mit set_field () die neuen JPanels hinzuzufügen.
Wenn ich diesen Code so ausführe, sehe ich nur eine graue Fläche in meinem Fenster. Wenn ich 'play.this.remove(card);' jedoch auskommentiere, läuft alles einwandfrei, nur das halt kein neues Spiel gestartet wird wenn man fertig ist.
Warum fuktioniert das nicht?
Java:
public void set_new_game() {
		for(int i=0;i<50;i++) {
			play.this.remove(card[i]);
			System.out.println("done");
		}
		zahl = (int) (Math.random()*50+1);
		play.this.setVisible(true);
		play.this.setTitle("Suchen Sie drei Zahlen um die Zahl "+zahl+" zu berechnen!");
		set_field();
	}
 

Tharsonius

Bekanntes Mitglied
An dieser Stelle mal für mich eine Verständnisfrage:

was genau macht
play.this.wasauchimmer()

Ich meine, this ist eine Referenz auf das aktuelle Objekt. Du rufst das aber wie eine Methode der Klasse play auf. Hab sowas noch nie gesehen, was genau passiert da ?
 

Ebenius

Top Contributor
was genau macht
play.this.wasauchimmer()
Hier ein Beispiel:

Java:
class A {

  class B {

    void foo() {
      // So kann ich meine eigene bar()-Methode aufrufen:
      this.bar();
      B.this.bar();
      A.B.this.bar();

      // So kann ich bar() meiner umliegenden Klasseninstanz aufrufen:
      A.this.bar();
    }

    void bar() {}
  }

  void bar() {}
}
[c]play[/c] müsste also ein Klassenname sein. Marco, wenn ich da recht habe, solltest Du Dir nochmal die Benennungsrichtlinien einprägen (groß- / klein): [c]KlassenName[/c], [c]methodenName[/c], [c]variablenName[/c], [c]packagename[/c], [c]COMPILE_TIME_KONSTANTE[/c].

Ebenius
 
Zuletzt bearbeitet:

Tharsonius

Bekanntes Mitglied
Ah, ok, danke. Wieder was gelernt.

Ich muss aber gestehen, ich halte es für seltsam und würde das glaube ich nie einsetzen. Aber wer weiss, vielleicht gehts manchmal nicht anders.


BTT:
Hilfreich wären die Methoden remove und set_field, damit man sehen könnte was Du da genau machst.
 

Marco7757

Aktives Mitglied
Ok, ich habe 49 auf 50 korrigiert. Auch packe (pack()) ich das ganze jetzt neu. Die neuen Panels werden jetzt immerhin angezeigt, allerdings habe ich nun an einem ganz anderen Ort ein Problem.

Wenn vom Benutzer etwas falsch gesetzt wird, soll es natürlich automatisch wieder zurückgesetzt werden. Hierfür habe ich die Methode setBack();
In ihr werden einige Arrays zurückgesetzt, was auch funktioniert. Allerdings bekomme ich
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
gemeldet. Allerdings verstehe ich das nicht, da mein Code (er folgt sogleich), eigentlich funktionieren müsste ...

Java:
static JPanel[] card = new JPanel[50]; //Habe ich auf 50 gestellt, wegen ArrayOutOfBounds

//Erstellen der Panels in Methode setField();
public void set_field() {
		
		final card[] cards = new card[49];
		
		int z = 0;
		for(int y = 1;y<=7;y++) {
			for(int x = 1;x<=7;x++) {
				final int f = z;
				cards[z] = new card();
				card[z] = cards[z].add_card(z, x, y);
				card[z].addMouseListener(new MouseAdapter() { //CODE
}});
				play.this.add(card[z]);
				z++;
			}	
		}
		panels_set = true;
}

//setBack();
public void set_back() {
		//Alle Koordinaten verschwinden lassen!
		setted[1][1] = 0;
		setted[1][2] = 0;
		setted[2][1] = 0;
		setted[2][2] = 0;
		setted[3][1] = 0;
		setted[3][2] = 0;
		//Alle möglichen Koordinaten auf 0 setzen
		for(int i=0;i<16;i++) {
			pos_co[i][1] = 0;
			pos_co[i][2] = 0;
		}
		if(panels_set==true) {
			for(int i=0;i<50;i++) {
				card[i].setBackground(Color.yellow); //Hier erscheint der Fehler, woran liegts?
			}
		}
	}

Weshalb gibt es da einen Fehler, ich prüfe ja noch extra, ob die Felder gesetzt sind ...?
 

sambalmueslie

Bekanntes Mitglied
und wenn du dann schon sowieso am schöner machen bist, dann kannst auch gleich eine ArrayLinkedList nehmen .. :)
und einfach durchiterieren :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
B Überschreiben und Überladen Java Basics - Anfänger-Themen 8
B Überschreiben und verdecken Java Basics - Anfänger-Themen 1
O Überschreiben/Überladen Methode Java Basics - Anfänger-Themen 6
R Schreibzugriff bei jedem Überschreiben? Java Basics - Anfänger-Themen 6
C Überschreiben von Methoden Java Basics - Anfänger-Themen 3
H Polymorphismus-Überschreiben Java Basics - Anfänger-Themen 1
F Überschreiben nach einer Vererbung Java Basics - Anfänger-Themen 2
A HashCode Überschreiben Java Basics - Anfänger-Themen 2
K Überschreiben einer "super.super"-Methode Java Basics - Anfänger-Themen 6
K Überschreiben und Überladen Java Basics - Anfänger-Themen 3
buntuswalus OOP Überschreiben von Eigenschaften Java Basics - Anfänger-Themen 8
T Polymorphie:Überschreiben der Methode klappt nicht Java Basics - Anfänger-Themen 4
K Überladen und Überschreiben von Methoden Java Basics - Anfänger-Themen 3
0 Überschreiben von pai*tBackground() Java Basics - Anfänger-Themen 2
G Überschreiben einer Variable umgehen Java Basics - Anfänger-Themen 6
G Überschreiben von Methoden beim Casting Java Basics - Anfänger-Themen 7
O Überschreiben erzwingen Java Basics - Anfänger-Themen 6
W Überschreiben von Elternklasse Java Basics - Anfänger-Themen 15
M JFileChooser Überschreiben Dialog? Java Basics - Anfänger-Themen 2
G Frage zum Überschreiben einer Klasse Java Basics - Anfänger-Themen 6
W Überschreiben und Methodenaufruf Java Basics - Anfänger-Themen 3
D Überschreiben Java Basics - Anfänger-Themen 9
E JPanels auf gleicher Höhe (Y-Achse) in einem FlowLayout platzieren Java Basics - Anfänger-Themen 7
M Probleme beim aktualisieren eines JPanels Java Basics - Anfänger-Themen 7
V Alle Komponenten eines JPanels Java Basics - Anfänger-Themen 14
L Threads Laufbild Erzeugen Problem mit Aktualisieren des JPanels Java Basics - Anfänger-Themen 2
W 2 JPanels in 2Klasse in einem JFrame zusammenfügen Java Basics - Anfänger-Themen 12
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
N Probleme beim entfernen eines JPanels Java Basics - Anfänger-Themen 4
L "Graphik" JPanels übereinander legen Java Basics - Anfänger-Themen 5
M JPanels verschachteln Java Basics - Anfänger-Themen 23
J Cannot find Symbol Variable mit JPanels Java Basics - Anfänger-Themen 2
M dynamische JPanels/Component Java Basics - Anfänger-Themen 3
U Neuzeichnen eines JPanels Java Basics - Anfänger-Themen 17
A Mehere JPanels und JLabels - Warum Fehler? Java Basics - Anfänger-Themen 5
G Gesamten clickCount mehrerer JPanels herausfinden Java Basics - Anfänger-Themen 5
M JPanels vergleichen Java Basics - Anfänger-Themen 3
A Matisse oder Java Problem: JPanels werden riesig ? Java Basics - Anfänger-Themen 3
B LayoutManager Anorden von verschiedenen JPanels Java Basics - Anfänger-Themen 5
Q ActionListener event bei JPanels Java Basics - Anfänger-Themen 5
P Schriftgröße eines JPanels ändern Java Basics - Anfänger-Themen 2
T JPanels austauschen? Java Basics - Anfänger-Themen 4
T Fehlermeldung beim Klonen eines JPanels Java Basics - Anfänger-Themen 8
W JPanels löschen und neu konstruieren Java Basics - Anfänger-Themen 4
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27

Ähnliche Java Themen

Neue Themen


Oben