java button mit transparentem Bild?

2 Antworten

Öffne das Bild zunächst in einem Bildbearbeitungsprogramm (wie Gimp), welches mit Alphakanälen umgehen kann. In diesem wäre zu prüfen, ob das Bild tatsächlich an allen notwendigen Stellen transparent ist. Speichere das Bild zudem in einem Format wie PNG, welches Transparenz sicher unterstützt.

Zum Zeichnen in Swing (ich gehe davon aus, dass du Swing benutzt), wäre eine eigene Komponente praktisch, die den Button zeichnet.

Beispiel:

public class TransparentButton extends JButton {
  private Image image;

  public TransparentButton(String imagePath) throws IOException {
    image = ImageIO.read(new File(imagePath)); // better: load image by resources ...
  }

  @Override
  public void paintComponent(Graphics graphics) {
    graphics.drawImage(image, 0, 0, 200, 200, null);
  }
}

Diesen kann man dann dem Frame zuordnen:

frame.setLayout(new FlowLayout());
frame.getContentPane().setBackground(Color.YELLOW); // showcase

try {
  JButton button = new TransparentButton("path/to/image");
  button.setPreferredSize(new Dimension(200, 200));
  button.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

  frame.add(button);
}
catch (IOException ex) {
  ex.printStackTrace();
}

Eventuell hat dein Bild nicht an allen Stellen Transparenz.


GregCat 
Beitragsersteller
 05.01.2020, 19:54

Doch hats ja aber es geht nicht

0