2014-03-02 56 views
0

image功能在這裏我創建它看起來像一個3D按鈕圖像,我想用它作爲我的應用程序中的Java Swing的按鈕。使圖像的行爲像Java中搖擺按鈕沒有實際的JButton

我嘗試下面的代碼:

ImageIcon water = new ImageIcon("button.jpeg"); 
    exceptionButton = new JButton(water); 

我把它作爲圖像,但它功能的Like按鈕的邊框,所以我用下面的代碼:

exceptionButton.setBorder(BorderFactory.createEmptyBorder()); 
    exceptionButton.setContentAreaFilled(false); 
    exceptionButton.setFocusPainted(false); 
    exceptionButton.setOpaque(false); 

但它沒有幫助。我想讓實際的圖像充當一個按鈕。圖像有圓角,但現在圖像進入按鈕並失去其圓角的實際效果。另外,我希望當用戶將鼠標移到它上面時,它會集中注意力。由於我已經把按鈕的圖像放在上面的代碼中,所以當用戶點擊按鈕時我沒有看到按鈕按下的效果。

我該如何更改我的代碼?

+2

像[這](http://stackoverflow.com/a/10862262/230513)? – trashgod

回答

1

圖像有圓角,但現在圖像進入按鈕並失去其圓角的實際效果。

請勿使用EmptyBorder,它將始終爲矩形。也可以嘗試使用setBorderPainted(false)

另外我希望它集中在用戶將鼠標移到它上面。因爲我已經把上面的代碼按鈕圖像

然後,你還需要提供一個翻轉圖標。見setRolloverIcon(...)

+0

我試過usinf setBorderPainted,但沒有顯示任何效果。圖像位於按鈕的矩形框內 – user2822187

0

使用的JLabel代替JButton的

jLabel5 = new javax.swing.JLabel(); 

    jLabel5.setIcon(new javax.swing.ImageIcon(youriconpath)); 
jLabel5.addMouseListener(new java.awt.event.MouseAdapter() { 
    public void mouseClicked(java.awt.event.MouseEvent evt) { 
     jLabel5MouseClicked(evt); 
    } 
    public void mouseEntered(java.awt.event.MouseEvent evt) { 
     jLabel5MouseEntered(evt); 
    } 
    public void mouseExited(java.awt.event.MouseEvent evt) { 
     jLabel5MouseExited(evt); 
    } 
}); 

    private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {          
     // TODO add your handling code here: 
     // write your code 
    }          

    private void jLabel5MouseEntered(java.awt.event.MouseEvent evt) {          
     // TODO add your handling code here: 
     //change your jlabel icon 
     jLabel5.setIcon(new ImageIcon("yourNewIconpath")); 
    }          

    private void jLabel5MouseExited(java.awt.event.MouseEvent evt) {          
     // TODO add your handling code here: 
     //resete your icon 
    }