Java JButton文本和焦点显示不正确、重叠
我用JButtons创建了一个简单的swing GUI。当我启动GUI时 如果我点击每个按钮一次 如何删除每个按钮上的幻影文本,以及如何删除已单击按钮上的深灰色焦点? 下面是我的按钮课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
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中的突出显示,但单击时它们仍然会永久突出显示。。。