3

次のような単純な 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) 
{}
}

ボタンから背景画像が見えるようにボタンを半透明に設定したい場合、コードはどうなるでしょうか。ところで、半透明と透明を混同しないでください!

4

2 に答える 2

1

あなたの質問にはコメントできないので、ここでお答えします。

このコードを使用する場合:

myButton.setOpaque(false);

ボタンはペイントされません。これは透明になったためです。半透明のボタンを作成するには、ボタンのペイント方法をオーバーライドする必要があると思います..

このスレッドを見てください

于 2013-01-13T14:54:57.903 に答える