Java JButton文本和焦点显示不正确,重叠

时间:2015-11-02 08:11:16

标签: java swing text duplicates jbutton

我用JButton创建了一个简单的swing GUI。当我启动GUI时,this is what it looks like

enter image description here

如果我点击每个按钮一次,it looks like this.

enter image description here

如何删除每个按钮上的幻像文本,以及如何删除已单击的按钮上的深灰色焦点? 下面是我的按钮类

package gui;

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JPanel;

public class MenuButton extends JButton{

private static final long serialVersionUID = 1L;

     public MenuButton(String text, JPanel container){
        setPreferredSize(new Dimension((int)(container.getSize().width),50));
        setBackground(new Color(168, 228, 247, 0));
        setForeground(Color.WHITE);
        setText(text);
        setOpaque(false);
        setFocusPainted(false);
        setBorderPainted(false);
        setRolloverEnabled(false);
        setContentAreaFilled(false);
    }

    public void addTo(JPanel container){
        container.add(this);
    }
}

我创建了" MenuButton"的新实例。在main中并将其添加到我的Jpanel,名为JMenu,但没有做任何进一步的操作。所以它现在应该做的就是显示一个带有相应文本的JButton,并且没有所有的悬停/点击/鼠标悬停突出显示效果。

1 个答案:

答案 0 :(得分:2)

setBackground(new Color(168, 228, 247, 0));
setOpaque(false);

您的参数存在冲突。你说这个按钮是透明的(所以你不想要背景画)但你试着给它一个带有alpha值的背景颜色。

使用其中一个,但不能同时使用两者。

如果您确定要使用具有alpha值的背景,那么您将遇到绘画问题。查看Backgrounds With Transparency以获取问题的解释和一些解决方案。