2012-06-22 42 views
1

我寫了這個小程序,試圖創建一個自定義JButton,不幸的是我無法設法刪除邊框。我以爲button.setBorder(null);會刪除它,但這是無效的。有誰知道如何從按鈕中刪除邊框,所以它只是圖標?任何幫助不勝感激。刪除自定義按鈕上的邊框

我的代碼如下:

package custombuttons; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.image.BufferedImage; 
import java.io.IOException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class CustomButtons { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     CustomButtons h = new CustomButtons(); 
     h.setUp(); 
    } 

    JFrame frame; 
    JPanel panel; 
    JButton button; 
    BufferedImage b; 
    String toolTip = "Configure"; 

    public void setUp() { 
     frame = new JFrame("Custom Buttons"); 
     try { 
      b = ImageIO.read(CustomButtons.class.getResource("/images/config.png")); 
     } catch (IOException ex) { 
      Logger.getLogger(CustomButtons.class.getName()).log(Level.SEVERE, null, ex); 
      ex.printStackTrace(); 
     } 

     Image b1 = (Image) b; 
     ImageIcon iconRollover = new ImageIcon(b1); 
     int w = iconRollover.getIconWidth(); 
     int h = iconRollover.getIconHeight(); 
     GraphicsConfiguration gc = frame.getGraphicsConfiguration(); 
     Image image = gc.createCompatibleImage(w, h, Transparency.TRANSLUCENT); 
     Graphics2D g = (Graphics2D) image.getGraphics(); 
     g.drawImage(iconRollover.getImage(), 0, 0, null); 
     g.dispose(); 

     ImageIcon iconDefault = new ImageIcon(b1); 
     image = gc.createCompatibleImage(w, h, Transparency.TRANSLUCENT); 
     g = (Graphics2D) image.getGraphics(); 
     g.drawImage(iconRollover.getImage(), 2, 2, null); 
     g.dispose(); 
     ImageIcon iconPressed = new ImageIcon(b1); 

     JButton button = new JButton(); 
     button.setIgnoreRepaint(true); 
     button.setFocusable(false); 
     button.setToolTipText(toolTip); 
     button.setBorder(null); 
     button.setContentAreaFilled(false); 
     button.setIcon(iconDefault); 
     button.setRolloverIcon(iconRollover); 
     button.setPressedIcon(iconPressed); 

     frame.setSize(500, 500); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLayout(new FlowLayout(FlowLayout.LEFT)); 

     panel = new JPanel(); 
     panel.setOpaque(false); 
     panel.add(button); 
     frame.getContentPane().add(panel); 
     frame.setVisible(true); 
    } 
} 
+0

*「一個自定義JBut噸「*爲什麼?自定義按鈕可以做什麼(除了失敗)標準按鈕沒有? –

回答

0

實際上我測試了我的NetBeans IDE中的代碼,並獲得無國界的,你只使用button.setBorder(null);button.setBorderPainted(false);both of them渴望 但 我認爲你應該確保你的原始圖像真的沒有任何邊界它自己