Button-BG ädern bei Klick auf Button

HCWD

Erfahrenes Mitglied
Servus

ich hab folgendes prob.

Ich bin grad an einem spiel zu programmieren in Swing. Spiel basiert auf der Idee Tick Tack Toe:
x| |
--------
x| |
--------
x| |

so ein kleines bildchen für die, die nicht wissen was tick tack toe ist.

die felder wo ein X oder ein O beim klicken zu sehen sein soll, sind normale buttons. die bild als hintergrund ohne text zugewiesen bekommen haben.

Code:
private JButton getJ1() {
		if (j1 == null) {
			j1 = new JButton();
			j1.setIcon(new ImageIcon(getClass().getResource("/game/"+einstellungen.getFeld1()+".jpg")));
			j1.setForeground(new Color(204, 204, 204));
			j1.setBounds(new Rectangle(51, 83, 80, 80));
			j1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) 
				{
					einstellungen.setFeld1(11);
					einstellungen.setX(2);
				}
			}
		);
		}
		return j1;
	}

problem bei der sache ist, dass wenn ich auf diesen button klicke, sollte eigentlich das bild vom button zu einem anderen wechseln... was aber nicht passiert. habe aber doch eigentlich es richtig gemacht mit dem "einstellungen.setFeld1(11);"

hab extra, wie ihr oben im code es seht, bei "new ImageIcon()" eine variable gesetzt, die durch den listener abgeändert wird.

ich hoffe ich hab des einigermassen logisch beschrieben. wenn was unverständlich ist, dann bitte sagen, weil ich einfach das problem nicht gelöst bekomme. ist es möglich durch einen variable den datei namen zu ändern, damit ein anderes bild auf dem button erscheint?

Greetz
 
Könntest du bitte mal die Methoden setFeld1(11) und setX(2) posten, damit ich mal sehe, was da passiert?
 
Moin, ja es ist möglich das zu ändern.

Du musst dem Button aber dann auch immer sagen das er ein neues Bild bekommt:
Code:
public void actionPerformed(ActionEvent e){
                //count ist ein int, und wird jedesmal hochgezählt
		count++;
		String pfad="test"+count+".jpg";
		System.out.println(pfad);
		b.setIcon(new ImageIcon(pfad));
	}

Hoffe das hat dir geholfen, ansonsten das Problem bitte nochma genauer schildern

Mfg bigboombang
 
deine post hat mir auf die sprünge geholfen... habs hin bekommen ^^ stimmt ohne neuladen des bildes wird java sich ein dreck scheren was zu machen ^^

gut habs hin bekommen... mein spiel ist komplett... THX an alle die geholfen haben ^^
 
Zurück