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

Java JButton文本和焦点显示不正确、重叠,java,swing,text,duplicates,jbutton,Java,Swing,Text,Duplicates,Jbutton,我用JButtons创建了一个简单的swing GUI。当我启动GUI时 如果我点击每个按钮一次 如何删除每个按钮上的幻影文本,以及如何删除已单击按钮上的深灰色焦点? 下面是我的按钮课 package gui; import java.awt.Color; import java.awt.Dimension; import javax.swing.JButton; import javax.swing.JPanel; public class MenuButton extends JB

我用JButtons创建了一个简单的swing GUI。当我启动GUI时

如果我点击每个按钮一次

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

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);
    }
}
我在main中创建了一个新的“MenuButton”实例,并将其添加到名为JMenu的Jpanel中,但并没有做更多的工作。因此,它现在应该做的就是显示一个带有适当文本的JButton,而不显示所有悬停/单击/鼠标悬停突出显示效果

setBackground(new Color(168, 228, 247, 0));
setOpaque(false);
您有相互冲突的参数。你说按钮是透明的(所以你不想画背景),但是你试着给它一个带有alpha值的背景色

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


如果你决定你想要一个有alpha值的背景,那么你将有绘画问题。查看有关问题的解释和一些解决方案。

我们可能需要父级
JPanel
,但我不确定您为什么将不透明设置为false。谢谢,这解决了文本重叠的问题。你知道为什么第一个按钮在启动时突出显示,而另一个按钮在按下后突出显示吗?使用“setFocusable(false);”删除了第一个JButton中的突出显示,但单击时它们仍然会永久突出显示。。。