设置背景颜色Java JButton

时间:2018-03-02 21:08:00

标签: java macos jbutton setbackground

我试图修改我的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))

2 个答案:

答案 0 :(得分:0)

这将生成一个带有白色文字的黑色按钮

this.setForeground(Color.WHITE);
this.setBackground(Color.BLACK);
this.setOpaque(true);
this.setBorderPainted(false);

但这是一个非常粗糙的,这是与基本的JButton相比

enter image description here

答案 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"

谢谢大家的帮助