# JButton nur mit Inhalt



## Fraggle (22. Feb 2008)

Hallo zusammen, 

Ich habe folgendes Problem:

```
ImageIcon icon3 = new ImageIcon("C.gif");
private JButton buttonC = new JButton(icon3);
```

Der Code funktioniert wunderbar, ich bekomme einen JButton angezeigt der das Bild C.gif enthält, so weit so gut. Nun möchte ich aber den eigentlichen Button ausblenden so dass nur noch sein Inhalt (das Bild) sichtbar ist, geht das irgendwie schlau?

Über eine Antwort würde ich mich sehr freuen!

Gruss,
Thomas


----------



## Wildcard (22. Feb 2008)

setOpaque(false)
setContentAreaFilled(false)
setBorderPainted(false)
funktioniert nicht in allen Look and Feels
Ein JLabel mit MouseListener wäre vielleicht sinnvoller.


----------



## Fraggle (22. Feb 2008)

Ein JLabel mit Listener wäre sinnvoller, geb' ich zu - die Sache ist eben, dass der Kollege die Klasse geschrieben hat und ich möchte alle seine Buttons nicht gegen Labels austauschen. 

Die Befehle sehen ja schon mal gut aus aber wie bekomm' ich die dazu zu funktionieren? 


```
ImageIcon icon3 = new ImageIcon("C.gif");
private JButton buttonC = new JButton(icon3);
buttonA.setOpaque(false);
buttonA.setContentAreaFilled(false);
buttonA.setBorderPainted(false);
```
Geht nicht


----------



## Wildcard (22. Feb 2008)

Geht nicht heißt?


----------



## Illuvatar (22. Feb 2008)

Natürlich geht das nicht, wenn du den button "buttonC" nennst und dann irgendwas mit "buttonA" machst 0o


----------



## Fraggle (23. Feb 2008)

entschuldigt, war gestern ein wenig müde. 

Der Code sieht nun so aus (Auszug):

```
Icon icon1 = new ImageIcon( "A.gif" );
private JButton buttonA = new JButton (icon1);
buttonA.setOpaque(false);
buttonA.setContentAreaFilled(false);
buttonA.setBorderPainted(false);
```

Bei den zwei ersten Zeilen meckert eclipse nicht aber bei den "set"-Methoden geht's irgendwie nicht - das heisst ich bekomme einen Fehler (Syntax error on token false, delete this token).

Was mache ich falsch?

Würde mich sehr über Hilfe freuen,
Thomas


----------



## Wildcard (23. Feb 2008)

Das muss natürlich in einer Methode/Konstruktor/Initializer stehen.
Warum immer erst  GUI Programme bevor man die Syntax beherrscht?  :roll:


----------



## Fraggle (23. Feb 2008)

Wildcard hat gesagt.:
			
		

> Das muss natürlich in einer Methode/Konstruktor/Initializer stehen.
> Warum immer erst  GUI Programme bevor man die Syntax beherrscht?  :roll:


Danke für deine Antwort, ich werd' das ma ausprobieren. Mit dem "beherrschen" ist das so eine Sache, ich habe die Methoden noch nie benutzt deshalb frage ich ja hier nach.


----------



## Wildcard (23. Feb 2008)

*Alle* Methodenaufrufe müssen entweder in einem Konstruktor, einer Methode, oder einem Initializer Block stehen.


----------



## Fraggle (23. Feb 2008)

Danke hat hervorragend funktioniert.


----------

