2013-05-30 75 views
1

所以我有一些JButtons在背景圖片上,它們被設置爲透明的,所以可以看到背景。然而,當我點擊按鈕時,按下鼠標按鈕時會出現灰色方塊。這看起來很醜,我想知道是否有任何方法來禁用該動畫?由於任何方式來禁用JButton的默認點擊動畫?

+1

什麼是外觀及感覺你正在使用? – aterai

+0

@aterai請問這個問題是基於一些圖形缺失或錯誤或:-),我無盡的好奇心 – mKorbel

+0

對不起,我是一種新的搖擺,你是什麼意思的外觀和感覺? – user2438514

回答

1

胡亂猜測......,你可以嘗試JPanel#setOpaque(false)方法:

enter image description here

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class PanelOpaqueTest { 
    public JComponent makeUI() { 
    JPanel p1 = createPanel(); 
    p1.setBorder(BorderFactory.createTitledBorder("JPanel#setOpaque(false)")); 
    p1.setOpaque(false); 
    p1.add(createButton()); 

    JPanel p2 = createPanel(); 
    p2.setBorder(BorderFactory.createTitledBorder("JPanel#setOpaque(true)")); 
    p2.setOpaque(true); 
    p2.add(createButton()); 

    JPanel p = new JPanel(new GridLayout(2,1)); 
    p.add(p1); 
    p.add(p2); 
    return p; 
    } 
    protected JButton createButton() { 
    JButton b = new JButton("button"); 
    b.setContentAreaFilled(false); 
    b.setFocusPainted(false); 
    //b.setBorderPainted(false); 
    //b.setOpaque(false); 
    return b; 
    } 
    protected JPanel createPanel() { 
    return new JPanel() { 
     @Override public void paintComponent(Graphics g) { 
     g.setColor(new Color(100,100,100,100)); 
     g.fillRect(0,0,getWidth(),getHeight()); 
     } 
    }; 
    } 
    public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     @Override public void run() { 
     createAndShowGUI(); 
     } 
    }); 
    } 
    public static void createAndShowGUI() { 
    JFrame f = new JFrame(); 
    f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    f.getContentPane().add(new PanelOpaqueTest().makeUI()); 
    f.setSize(320, 240); 
    f.setLocationRelativeTo(null); 
    f.setVisible(true); 
    } 
} 
+0

aaach現在我可以看到謝謝 – mKorbel