我用JButton创建了一个简单的swing GUI。当我启动GUI时,this is what it looks like。
如果我点击每个按钮一次,it looks like this.
如何删除每个按钮上的幻像文本,以及如何删除已单击的按钮上的深灰色焦点? 下面是我的按钮类
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,并且没有所有的悬停/点击/鼠标悬停突出显示效果。
答案 0 :(得分:2)
setBackground(new Color(168, 228, 247, 0));
setOpaque(false);
您的参数存在冲突。你说这个按钮是透明的(所以你不想要背景画)但你试着给它一个带有alpha值的背景颜色。
使用其中一个,但不能同时使用两者。
如果您确定要使用具有alpha值的背景,那么您将遇到绘画问题。查看Backgrounds With Transparency以获取问题的解释和一些解决方案。