2013-01-13 102 views
2

我有一個簡單的GUI代碼如下,其中我想使JButton一個半透明,以便JButton後面的圖像可見!JButton的不透明度/半透明度?

package dealORnodeal; 

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Container; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 

public class Deal extends JFrame implements ActionListener 
{ 
private Container contentPane = getContentPane(); 
private JButton one = new JButton("1"),two = new JButton("2"); 
private JMenu menu1 = new JMenu("JumpTo"); 
private JMenuBar bar1 = new JMenuBar(); 
private ImagePanel bg = new ImagePanel(new ImageIcon("bg.jpg").getImage()); 
public Deal() 
{ 

    super("Deal Or No Deal"); 
    setSize(800,850); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setResizable(false); 
    setLayout(null); 
    contentPane.add(bg); 

    JMenuItem item1; 

    item1 = new JMenuItem("Start Game"); 
    item1.addActionListener(this); 
    menu1.add(item1); 

    item1 = new JMenuItem("GoTo Rules"); 
    item1.addActionListener(this); 
    menu1.add(item1); 

    item1 = new JMenuItem("GoTo Credits"); 
    item1.addActionListener(this); 
    menu1.add(item1); 

    item1 = new JMenuItem("GoTo Menu"); 
    item1.addActionListener(this); 

    menu1.add(item1); 
    bar1.add(menu1); 
    setJMenuBar(bar1); 

    //GAME CODE 
    one.setBounds(25,151,190,49); 
    one.addActionListener(this); 

    add(one); 
    //GAME CODE END 

setVisible(true); 
} 

@Override 
public void actionPerformed(ActionEvent e) 
{} 
} 

現在如果我想將按鈕設置爲半透明以便背景圖像通過按鈕可見,代碼如何。順便說一句,請不要混淆半透明與透明!

+1

我認爲這個鏈接可以幫助你http://stackoverflow.com/questions/7373345/how-to-create-partly-transparent-jbutton-on-fully-transparent-jframe – hmatar

+2

爲了更好的幫助更快,發佈一個[SSCCE ](http://sscce.org/)(添加一個'main(String])',包含'ImageP anel'&在代碼中創建一個圖像)。 –

+1

爲什麼不說明半透明和透明之間的區別以避免混淆。 –

回答

1

,我不能給你的問題發表評論,所以我會在這裏回答你..

如果您使用此代碼:

myButton.setOpaque(false); 

它不會繪製按鈕 - 因爲現在它是一個trasnparent。 創建按鈕半透明我想你應該重寫按鈕paint方法..

看看這個thread

1

setOpaque爲Jbutton將無法正常工作,正確的屬性是:

button.setContentAreaFilled(false);