删除JButtons上的异步更新

时间:2013-04-12 21:19:41

标签: java swing asynchronous jbutton repaint

我正在做一些非常随意的事情,主要是因为我的强迫症,但长话短说我想删除JButtons上的异步更新并在需要更改按钮时调用repaint()。

有没有办法做到这一点,不能覆盖JButton实现的覆盖的imageUpdate方法?我正在进行作业,只能输入有限数量的文件。

我感谢任何回复:)

看到它的作业,而且我是一个非常大的课程,对作弊/复制粘贴有一些相当严格的规定,我觉得发布我的示例代码感觉不舒服。如果任何答案都是假设的话,我更愿意!再次感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果您可以使用JLabel或JPanel,或其中一个使用JButton,我强烈建议您这样做。

JButton在更新状态时不可靠。

如果绝对需要使用JButton,你能更详细地解释一下你想要做什么吗?

答案 1 :(得分:0)

通常,当想要控制组件绘制时,应该覆盖 paintComponent ,如下所示:

new javax.swing.JButton(){
    @Override
    protected void paintComponent(Graphics g){
        super.paintComponent(g);
        // things you want to do here
    }
};

为了更好地控制,你可以忽略对

的调用
super.paintComponent(g);

但这样做需要你

  

必须遵守opaque属性,即如果此组件是不透明的,则必须以非不透明的颜色完全填充背景。如果您不遵守opaque属性,您可能会看到视觉伪影。

Java API文档中的stated

相关问题