java - JButton 的不透明度/半透明度?

标签 java swing transparency jbutton translucency

我有如下简单的 GUI 代码,其中我想使 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) 
{}
}

现在,如果我想将按钮设置为半透明的,以便通过按钮可以看到背景图像,代码会怎样。顺便说一句,请不要将半透明与透明混淆!

最佳答案

我不能评论你的问题,所以我会在这里回答你..

如果您使用此代码:

myButton.setOpaque(false);

它不会绘制按钮 - 因为现在它是透明的。 要创建半透明的按钮,我认为您应该重写按钮绘制方法。

看看这个thread

关于java - JButton 的不透明度/半透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303858/

相关文章:

java - DatabaseMetaData.getColumns 为同义词返回一个空的结果集

java - 使用不同的参数同时执行多个 Spring Batch 作业

使用面板消息/解决方法时,Java 1.5 JOptionPane 绘制错误?

java - 使整个 jinternalframe 透明

swift - NSRectFill 和 NSBezierPath(rect).fill 有什么区别

java - Java War文件在jar文件中引发FileNotFoundException

Javafx 点击一个圆圈并获取它的引用

java - JComponent 上用于 Ctrl 键的 KeyListener

java - repaint() 方法不会重新绘制我的屏幕

image - 如何在Delphi中使TImage透明?