我试图在按下时覆盖JButton
的默认背景颜色;只要按下按钮,背景颜色就必须保持不变。
我试过这段代码:
button.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
button.setBackground(Color.BLUE); // applied after release!!
System.out.println("pressed"); // applied on pressed - OK.
}
});}
mousePressed
这里没有达到我的要求!!
永远不会调用此行:button.setBackground(Color.BLUE);
。但是这一行被调用:System.out.println("pressed");
。
然而,释放按钮后调用此行button.setBackground(Color.BLUE);
- 不按下!!!
如何达到我的要求?
答案 0 :(得分:0)
在代码的鼠标适配器部分之前,将Color
对象设为:
final Color col = button.getBackground();
然后,在鼠标适配器中,添加以下方法:
public void mouseReleased(MouseEvent e)
{
button.setBackground(col);
}
这使您的总代码为:
final Color col = b.getBackground();
button.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e)
{
b.setBackground(Color.BLUE);
}
public void mouseReleased(MouseEvent e)
{
b.setBackground(g);
}
});
因此,当您按下时,颜色变为蓝色,然后当您松开鼠标时,它会变回原始颜色。这在我的电脑上运行良好。