我试图修改我的JButton的背景颜色(和大小),但它不起作用(前景是好的)
public class boutondesign extends JButton implements MouseListener {
private String name;
public boutondesign(String nom){
super(nom);
this.name = nom;
this.setSize(100, 100);
this.addMouseListener(this);
this.setBackground(Color.BLACK);
this.setForeground(Color.white);
提前感谢您的回答
遵循第一条建议:
public boutondesign(String nom){
super(nom);
this.name = nom;
this.addMouseListener(this);
this.setForeground(Color.white);
this.setBackground(Color.BLACK);
this.setContentAreaFilled(false);
this.setOpaque(false);
this.setBorderPainted(false);
this.setFocusPainted(false);
}
无法正常工作
尝试覆盖paintComponent:
public boutondesign(String nom){
super(nom);
this.name = nom;
this.addMouseListener(this);
this.setForeground(Color.white);
this.setOpaque(false);
this.setBorderPainted(false);
this.setFocusPainted(false);
}
public void paintComponen(Graphics g){
g.setColor(Color.BLACK);
}
不工作:((我也试过g.setColor(getBackground()。setColor(Color.Black))
答案 0 :(得分:0)
这将生成一个带有白色文字的黑色按钮
this.setForeground(Color.WHITE);
this.setBackground(Color.BLACK);
this.setOpaque(true);
this.setBorderPainted(false);
但这是一个非常粗糙的,这是与基本的JButton相比
答案 1 :(得分:0)
根据user3437460的评论,我查看了Mac和JButton的具体内容,
代码正常运作
public boutondesign(String nom){
super(nom);
this.name = nom;
this.addMouseListener(this);
this.setForeground(Color.white);
this.setBackground(Color.black);
this.setOpaque(true);
this.setBorderPainted(false);
this.setFocusPainted(false);
}
似乎在Mac上,Opaque属性必须为true,而不会覆盖paintComponents和FocusPainted" False"
谢谢大家的帮助