我正在做一些非常随意的事情,主要是因为我的强迫症,但长话短说我想删除JButtons上的异步更新并在需要更改按钮时调用repaint()。
有没有办法做到这一点,不能覆盖JButton实现的覆盖的imageUpdate方法?我正在进行作业,只能输入有限数量的文件。
我感谢任何回复:)
看到它的作业,而且我是一个非常大的课程,对作弊/复制粘贴有一些相当严格的规定,我觉得发布我的示例代码感觉不舒服。如果任何答案都是假设的话,我更愿意!再次感谢您的帮助。
答案 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。