【发布时间】:2015-03-09 06:06:53
【问题描述】:
我的一个朋友给了我这个计时器代码。我必须说我是初学者,所以我不明白@Override是什么,但代码对其他朋友有用。
- tijd 是一个 int,值为 10
- lx 是标签的 x 值
- s1 也是一个值为 3 的 int
Eclipse 谈到了公共 void 行:
这一行有多个标记:
- new ActionListener(){} 类型的方法 actionPerformed(ActionEvent) 必须覆盖超类方法
- 实现 java.awt.event.ActionListener.actionPerformed
代码是:
final Timer t = new Timer(tijd, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
lx = lx-s1;
}
});
t.start();
随之而来的是删除@Override 的建议,但由于我不确定它的作用,我不知道我是否会删除代码中的重要内容。我想它不存在是因为有人认为包含代码会很有趣。
所以我的问题是:
1. 如何移动标签?
2.@Override有什么问题?
【问题讨论】:
-
问题是什么?
-
@RealSkeptic 如何移动标签,以及 Override 有什么问题
-
@Override告诉编译器您希望重写父类或接口中的方法(本例来自ActionListener),它提供了一种方法,当您犯了一个错误。确保您正在导入java.awt.event.ActionListener、java.awt.event.ActionEvent和javax.swing.Timer -
@MadProgrammer 我已经导入了这 3 个。这是否意味着我可以删除 @Override?span>
-
关于移动标签:这并非完全无关紧要,因为在 Swing 中,标签的位置通常由其容器决定。您应该发布所有相关代码,也许还有屏幕截图。一般来说,您需要访问其中一个 GUI 组件 - 仅更改变量不会影响 GUI 对象。至于
@Override- Eclipse 实际上是给你一个错误还是只是一个警告?
标签: java timer overriding superclass