# Schachbrett / Icon / JButton



## Kapitän (30. Jan 2009)

hallo,

ich möchte ein Spiel implementieren.
Das Spielbrett setzt sich aus mehreren rechteckigen Bildern zusammen.
Jedes Bild soll ein JButton zum Anklicken sein.

Um mich an das Thema ran zu tasten, wollte ich erstmal ein paar JButtons mit Bild in einem JFrame ausgeben.
Die JButtons sollen dann in einem 8x8 Quadrat angeordnet sein.

Allerdings scheitere ich schon daran, einen einzelnen JButton mit .png zu versehen.
Die .png sind in einem Ordner "Image" im Projekt integriert.
So weit bin ich:


```
/**
* setze EIN Bild auf EINEN JButton
*/
public class Funktion {

	private JFrame gameBoard = new JFrame("-= SOKOBAN =-  version 0.1");

	/**
	 * 
	 */
	private void buildFrame() {

		gameBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		gameBoard.setSize(300, 200);
		gameBoard.setLayout( new FlowLayout());
		gameBoard.setVisible(true);
	}

	private void loadIcons() {

		final Icon icon1 = new ImageIcon("Image.icon1.png");
		final Icon icon2 = new ImageIcon("Image.icon2.png");

		final JButton button = new JButton(icon1);
		
		/*=================================================*/
		// recognize mouse click
		button.addActionListener( new ActionListener() {
			
			/**
			 * this method will be performed, when button is clicked
                         * i.e. change icon when clicked
			 */
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub	
				button.setIcon(icon2);
			}
		} );/*===================================================*/
		
			gameBoard.add(button);
			gameBoard.pack();
	}
```


Aber anstatt meines Bildes, bekomme ich nur ein länglichen JButton ohne Bild.


----------



## Marco13 (30. Jan 2009)

final Icon icon1 = new ImageIcon("Image.icon1.png"); 
sollte das 
final Icon icon1 = new ImageIcon("Image/icon1.png"); 
oder so sein? Jedenfalls musst du da noch den Pfad angeben. Kannst mal mit
final Icon icon1 = new ImageIcon("//Image.icon1.png"); 
probieren. Im Zweifelsfall kannst du auch mit sowas wie
System.out.println(new File(dasWasObenImKonstruktorVomImageIconSteht).exists()); 
ausgeben, ob die Datei mit dem angegebenen Pfad existiert...


----------



## Fu3L (30. Jan 2009)

```
"Image.icon1.png"
```

ersetzen durch


```
"Image/icon1.png"
```


----------



## André Uhres (30. Jan 2009)

1234567890


----------



## Kapitän (31. Jan 2009)

ok, das Einlesen war falsch.

So weit, so gut.

Jetzt möchte ich noch diese JButtons in einem 8x8 Quadrat ordnen.
Wie gehe ich da vor?


----------



## 0x7F800000 (31. Jan 2009)

bei container der buttons den Layout auf GridLayout(8,8) setzen, und dann mit zwei verschachtelten schleifen 64 buttons hinzufügen.


----------



## André Uhres (31. Jan 2009)

1234567890


----------



## 0x7F800000 (31. Jan 2009)

Da gab's doch auch noch was, alle haben kräftig herumpfgeschimpft, aber am ende waren doch irgendwie ein paar vorschläge da: Schachbrett


----------

