import java.awt.Frame;
import java.awt.event.*;public class $2121_Key {
class $2121_Window extends Frame{
$2121_Window(){
this.setBounds(100, 100, 100, 100);
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==e.VK_KP_DOWN){
//我想在这里实现窗口的关闭,怎么写?
//因为是内部类
//不能用System.exit(0);
}
}
});
this.setVisible(true);
}
}
}
//调用Frame的方法
dispose();
setVisible(false);
}
但是我不明白为什么这个地方能直接写方法!~这是在内部类的内部啊
这个时候对象怎么能时frame?
this.这个时候肯定指的是KeyEvent对象。
不解!~~~~大侠,能解释下吗?
package csdn;import java.awt.Frame;
import java.awt.event.*;public class $2121_Key {
class $2121_Window extends Frame {
$2121_Window() {
this.setBounds(100, 100, 100, 100);
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == e.VK_KP_DOWN) {
closeWin();//调用closeWin();
}
}
});
this.setVisible(true);
}
} private void closeWin() {
// 这里实现窗口的关闭
}
}
这个this是指你的$2121_Window 不是KeyEvent.但是我不明白为什么这个地方能直接写方法!~这是在内部类的内部啊 >>>不知道怎么回答你这个问题
new KeyAdapter() {...}是$2121_Window的匿名内部类,
这个匿名的内部类继承了抽象KeyAdapter,并重写了keyPressed方法
具体可查API