@Override public void displayPreference
时间: 2024-10-19 18:15:23 浏览: 36
`@Override`是一个Java注解,用于标记一个方法是重写父类或接口中的已存在方法的。当你在子类中声明一个方法,并在其上加上`@Override`,JVM会在编译期间检查这个方法是否真的匹配父类或超接口中的那个被声明为`@Override`的方法。如果不符合,编译器会报错,帮助开发者确保正确实现了多态。
在你的例子中,`public void displayPreference`可能是某个特定界面或模块中的一种操作,比如在Android开发中,`displayPreference`可能是用来显示设置偏好项的一个方法。如果你有一个父类或接口定义了一个同名的方法,你在子类中覆盖它,是为了提供针对特定需求定制的行为:
```java
public class ParentClass {
public void displayPreference() { ... }
}
public class ChildClass extends ParentClass {
@Override
public void displayPreference() { // 这里提供了不同于父类的实现 }
// 子类的逻辑...
}
}
```
相关问题
new Thread(new Runnable() { @Override public void run() {}
这段代码展示了在Java中创建和启动一个新线程的一种常见方式。让我们来详细解释一下:
1. new Thread(...) 是创建一个新的线程对象。
2. new Runnable() { ... } 是创建了一个实现了Runnable接口的匿名内部类。
3. @Override public void run() {} 是重写了Runnable接口的run()方法。
具体来说:
1. 创建线程:new Thread(...) 创建了一个新的线程对象。
2. 实现Runnable接口:new Runnable() { ... } 创建了一个实现了Runnable接口的匿名内部类。这样做的好处是可以在创建线程的同时定义线程要执行的任务,而不需要单独创建一个实现了Runnable接口的类。
3. 重写run()方法:@Override public void run() {} 重写了Runnable接口的run()方法。这个方法包含了线程要执行的代码。当线程启动后,JVM会调用这个run()方法。
4. 启动线程:需要注意的是,这段代码只是创建了线程对象,但还没有启动线程。要启动线程,还需要调用Thread对象的start()方法。
例如:
```java
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread is running");
}
}).start();
```
这段代码会创建一个新的线程,并在新线程中打印"Thread is running"。
public class JavaMain { public static void main(String[] args) { new MyWindow(); } } class MyWindow extends JFrame implements MouseListener, MouseMotionListener, ActionListener { //定义两个点 private Point oldPoint = null,newPoint = null; public MyWindow () { this.setSize(600,600); addMouseListener(this); addMouseMotionListener(this); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //画图 public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(10.0f)); g2.setColor(Color.red); if(oldPoint!=null&&newPoint!=null) { g2.drawLine(oldPoint.x, oldPoint.y, newPoint.x, newPoint.y); oldPoint=newPoint; newPoint=null;//置为空,为了迎接下一个点的到来 } } //鼠标拖动事件 @Override public void mouseDragged(MouseEvent e) { if(oldPoint==null) { oldPoint=e.getPoint(); }else { newPoint=e.getPoint(); repaint();//生成新的点,通知系统去更新绘图 } } @Override public void mouseMoved(MouseEvent e) {} //鼠标单击事件 @Override public void mouseClicked(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) {} @Override public void mousePressed(MouseEvent e) {} //鼠标释放事件,清空工作 @Override public void mouseReleased(MouseEvent e) { newPoint=null; oldPoint=null; } }设置清除画布按钮
您可以在 `MyWindow` 类中添加一个按钮,并为其添加一个 `ActionListener`,在按钮被点击时清除画布。代码示例如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyWindow extends JFrame implements MouseListener, MouseMotionListener, ActionListener {
private Point oldPoint = null, newPoint = null;
private JButton clearButton; // 添加一个清除按钮
public MyWindow() {
this.setSize(600, 600);
addMouseListener(this);
addMouseMotionListener(this);
// 初始化清除按钮
clearButton = new JButton("清除画布");
clearButton.addActionListener(this);
JPanel buttonPanel = new JPanel();
buttonPanel.add(clearButton);
add(buttonPanel, BorderLayout.SOUTH);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10.0f));
g2.setColor(Color.red);
if (oldPoint != null && newPoint != null) {
g2.drawLine(oldPoint.x, oldPoint.y, newPoint.x, newPoint.y);
oldPoint = newPoint;
newPoint = null;
}
}
@Override
public void mouseDragged(MouseEvent e) {
if (oldPoint == null) {
oldPoint = e.getPoint();
} else {
newPoint = e.getPoint();
repaint();
}
}
@Override
public void mouseMoved(MouseEvent e) {}
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {
newPoint = null;
oldPoint = null;
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == clearButton) {
Graphics g = getGraphics();
g.setColor(getBackground());
g.fillRect(0, 0, getWidth(), getHeight());
}
}
}
```
在上面的代码中,我们添加了一个 `clearButton` 按钮,并在其上添加了一个 `ActionListener`。当按钮被点击时,会调用 `actionPerformed` 方法清除画布。在 `actionPerformed` 方法中,我们获取了 `MyWindow` 的 `Graphics` 对象,并使用 `fillRect` 方法覆盖整个画布。这样就达到了清除画布的效果。
阅读全文
相关推荐
















