2017-12-27 27 views
-1

Ich brauche eine JFrame mit einem runden Knopf und mit einem runden Bild als das Symbol der Schaltfläche (Jede Sache wird aber eine Maske wäre einfacher für mich).Können wir einen runden JButton mit einem runden Bild als Schaltflächensymbol erstellen?

Bisher habe ich nach diesen Dingen gesucht, aber ich habe eine runde JButton aber mit Text (Making a round button by Java Examples) anstelle eines Bildes gefunden. I (für die Maskierung) haben die Masking gesehen, aber nicht wissen, wie sie auf den Knopf implementieren bitte

Antwort

0

ändern die paintComponent(g) Methode der Klasse Roundbutton helfen wie folgt.

protected void paintComponent(Graphics g) { 
    g.setClip(new Ellipse2D.Double(0, 0, getWidth(), getHeight())); // set the area that shall be painted 
    g.drawImage(bim, 0, 0, getWidth(), getHeight(), null); // draw the image, if available 
    if (getModel().isArmed()) {  // show a slight gray shading when pressing the button 
     g.setColor(new Color(127, 127, 127, 80)); // gray with 80 as alpha 
     g.fillOval(0, 0, getSize().width - 1, getSize().height - 1); 
    } 
    super.paintComponent(g); 
} 

Darüber hinaus definieren eine globale Variable private BufferedImage bim und legen Sie es mit dieser Methode:

public void setButtonImage(BufferedImage pbim) { 
    bim = pbim; 
    repaint(); 
} 

Dies sollte für Ihre Bedürfnisse gut funktionieren. So hast du einen runden Knopf mit Text und einem Bild.