Java中事件对象的本质是什么?

会飞的一棵树 2017-11-16 12:42:27
部分代码如下:

import java.awt.event.*;
import javax.swing.*;

public class Police implements KeyListener,FocusListener{
public void keyPressed(KeyEvent e) {
JTextField t =(JTextField)e.getSource();//是吧KeyEvent对象强制转换为JTextField类型吧,那它本身是又是什么?
// 事件对象都可以任意转换为其它类型的吗?

if(t.getCaretPosition()>6)
t.transferFocus();
}
public void focusGained(FocusEvent e) {
JTextField text = (JTextField)e.getSource();//同上
text.setText(null);
}
public void focusLost(FocusEvent e) {}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
...全文
385 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
月神夜下梦 2017-11-16
  • 打赏
  • 举报
回复
事件通常都是用接口interface定义的,而凡是实现implements了这个接口的类对象,都可以进行强制转换。首先这是面向对象最基本的多态性,其次这是Java语言实现多态性的一种手段,还有抽象类、继承等。
广寒月蛮兔 2017-11-16
  • 打赏
  • 举报
回复
不是,看转换前的对象有没有实现或者继承转换后的类型才能进行转换,可以去看java多态的性质
李德胜1995 2017-11-16
  • 打赏
  • 举报
回复
JTextField t =(JTextField)e.getSource();这运行不会类转换错误???

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧