# JButton - Design ändern



## Dreezard (29. Mai 2005)

Also:
Ich würde gern das design eines Buttons verändern, bzw neu erstellen. Ich möchte nicht gleich ein neues Look and feel erstellen...
Reicht es da aus, ne Klasse vom JButton zu extenden und die paint() methode zu überschreiben oder ist das schon mehr Arbeit?

Naja, btw: Ich würd schon gern mal wissen wie man sich komplette look and feels erstellt, also wenn jmd gute links mit tutorials dazu hat, gern her damit.

Thx in advance


----------



## Sky (29. Mai 2005)

Dreezard hat gesagt.:
			
		

> Reicht es da aus, ne Klasse vom JButton zu extenden und die paint() methode zu überschreiben


 ja


----------



## lost.paradise (30. Mai 2005)

Wenns nur um die Buttons geht, dann kannste diese Klasse benutzen.


```
import javax.swing.*;

public class JIconButton
	extends JButton{
	
 	public JIconButton(String _file)
 	{	
   		super(new ImageIcon(_file));
 	}
}
```

N neuen Button erzeugste dann einfach so:


```
final String VERZEICHNIS = "pfad/des/gifs/";

JIconButton test = new JIconButton(VERZEICHNIS+"test.gif");
```


----------



## Sky (30. Mai 2005)

lost.paradise hat gesagt.:
			
		

> Wenns nur um die Buttons geht, dann kannste diese Klasse benutzen.
> 
> 
> ```
> ...



Oder einfach:
	
	
	
	





```
final String VERZEICHNIS = "pfad/des/gifs/"; 
Icon icon = new ImageIcon(VERZEICHNIS+"test.gif");

JButton test = new JButton( icon );
```

Eine neue Klasse ist dafür wirlich nicht notwendig!


----------



## lost.paradise (30. Mai 2005)

sky80 hat gesagt.:
			
		

> Eine neue Klasse ist dafür wirlich nicht notwendig!



Jain, find ich eigentlich schon. Bei einem Button vielleicht nicht. Baut man allerdings mehrere Buttons, finde ich meine Methode doch praktischer. Da übergibt ich den Pfad des gifs ja direkt im Konstruktor, während man bei der 2ten Lösung jedesmal ein neues Icon - Object erzeugen muss und dieses dann dem Konstruktor übegibt.  :wink:

Meine Methode:


```
final String VERZEICHNIS = "pfad/des/gifs/";

JIconButton test = new JIconButton(VERZEICHNIS+"test.gif");
JIconButton test2 = new JIconButton(VERZEICHNIS+"test2.gif");
```

Bei der anderen würde es so sein:


```
final String VERZEICHNIS = "pfad/des/gifs/";

Icon icon = new ImageIcon(VERZEICHNIS+"test.gif");
JButton test = new JButton( icon );

Icon icon2 = new ImageIcon(VERZEICHNIS+"test2.gif");
JButton test2 = new JButton( icon2);
```


----------



## Wildcard (30. Mai 2005)

lost.paradise hat gesagt.:
			
		

> sky80 hat gesagt.:
> 
> 
> 
> ...


tolles Argument :wink: 

```
JButton test2 = new JButton(new ImageIcon(VERZEICHNIS+"test2.gif"));
```


----------



## Sky (30. Mai 2005)

Bei deiner Methode werden im Konstruktor immer wieder neue Icons angelegt. So geht's sogar nur mit einmal Icon anlegen:


```
final Icon BUTTON_ICON = new ImageIcon("pfad/des/gifs/test.gif");

JButton test = new JButton(BUTTON_ICON);
JButton test2 = new JButton(BUTTON_ICON);
```


----------



## lost.paradise (30. Mai 2005)

Klar werden da neue Icons angelegt. Weil ich bei meinem test-Button das test.gif benutze und beim test2-Button das test2.gif. In deiner Lösung nimmt man aber immer dasselbe gif. Aber lassen wir die Millimeterpisserei. Ich denke, Wildcards Lösung ist die Beste


----------



## Sky (30. Mai 2005)

lost.paradise hat gesagt.:
			
		

> Klar werden da neue Icons angelegt. Weil ich bei meinem test-Button das test.gif benutze und beim test2-Button das test2.gif. In deiner Lösung nimmt man aber immer dasselbe gif. Aber lassen wir die Millimeterpisserei. Ich denke, Wildcards Lösung ist die Beste


Hab nicht aufgepaßt! hab die kleine 2 vor dem .gif bei test2 übersehen...


----------

