# Spezieller Button



## sirbender (6. Apr 2011)

Hi,

ich will einen Button der eigentlich nur ein Label ist mit einer gruenen Flaeche (ohne 3D Erhebungen oder sowas). Wenn ich mit der Maus darueberfahre hat er wird die Buttonflaeche orange eingefaerbt, die Ecken sind abgerundet. Wenn ich den Button clicke wird der Button waehrend dem Click rot eingefaerbt, ebenfalls abgerundete Ecken. Nach dem Click ist er wieder orange, verlasse ich die Buttonflaeche ist es eine gruene Flaeche.

Wie soll ich sowas am einfachsten machen? Mit einer JComponent, JLabel, JButton starten? Wie mache ich die Einfaerbungen? Wie die Eckenabrundungen?

Hat vielleicht jemand ein Codebeispiel fuer so einen Button? Ich denke mal das wurde schon oft programmiert.

Danke,
sb


----------



## Landei (6. Apr 2011)

Eins nach dem anderen. Erst mal Abrunden: Java rounded Swing JButton - Stack Overflow


----------



## Volvagia (6. Apr 2011)

Am einfachsten?
Per JLabel mit Icons und MouseListener.


```
public void mousePressed(MouseEvent arg0)
{
	BufferedImage bufferedImage = (BufferedImage)((ImageIcon)getIcon()).getImage();
	if(!mouseOnAlphaPixel(arg0.getX(), arg0.getY(), bufferedImage) && canAccess)
		mouseHasPressed(arg0);
}
private boolean mouseOnAlphaPixel(int x, int y, BufferedImage image)
{
	return(alphaFromRgb(image.getRGB(x, y)) == 0);
}
private int alphaFromRgb(int rgb)
{
	return((rgb >> 24) & 0x000000FF);
}
```


----------

