Java: Verwendung eines Bildes als Schaltfläche

Lesezeit: 1 Minute

Benutzer-Avatar
3sdmx

Ich möchte ein Bild als Schaltfläche in Java verwenden, und ich habe versucht, dies zu tun:

BufferedImage buttonIcon = ImageIO.read(new File("buttonIconPath"));
button = new JButton(new ImageIcon(buttonIcon));

Aber dies zeigt immer noch die eigentliche Schaltfläche hinter dem Bild, ich möchte nur, dass das Bild als Schaltfläche fungiert, wie kann ich das tun?

Benutzer-Avatar
jzd

Entfernen Sie den Rand wie folgt:

button.setBorder(BorderFactory.createEmptyBorder());

und dann auch der Inhalt1:

button.setContentAreaFilled(false);

1: Entnommen aus der Lösung, die der Frage von @3sdmx hinzugefügt wurde

  • Das hat irgendwie funktioniert, aber es gibt immer noch eine Art Hintergrund von der Schaltfläche selbst, gibt es eine Möglichkeit, sie vollständig zu entfernen? Oder transparent machen?

    – 3sdmx

    4. Februar 2011 um 14:55 Uhr

  • Sie können versuchen, den Hintergrund auf eine andere Farbe oder transparent einzustellen. Hat Ihr Bild Transparenz oder ist es ein solides Quadrat?

    – jzd

    4. Februar 2011 um 18:14 Uhr

Benutzer-Avatar
ttheolh

Ein Vorschlag wäre, das Bild als Label festzulegen und dem Label einen Maus-Listener hinzuzufügen, um Klicks zu erkennen.

Beispiel:

ImageIcon icon = ...;

JLabel button = new JLabel(icon);

button.addMouseListener(new MouseAdapter() {
  @Override
  public void mouseClicked(MouseEvent e) {
     ... handle the click ...
  }
});

buttonIcon.setBorder (neuer leerer Rand (0,0,0,0));

  • Dies malt immer noch, was wie eine sehr kleine Version des Schaltflächenrahmens aussieht, zumindest unter MacOS.

    – Einzelner Schuss

    17. April 2013 um 21:32 Uhr

button.setBorderPainted( false );

Dies kann einfach in Netbeans erfolgen, indem Sie die contentAreaFilled Eigenschaft zu False

Benutzer-Avatar
Wladimir

    BufferedImage buttonIcon = ImageIO.read(new File("myImage.png"));
    button = new JButton(new ImageIcon(buttonIcon));
    button.setBorderPainted(false);
    button.setFocusPainted(false);
    button.setContentAreaFilled(false);

Benutzer-Avatar
Adham Gamal

schreib das einfach

button.setContentAreaFilled(false);

1026980cookie-checkJava: Verwendung eines Bildes als Schaltfläche

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy