【发布时间】:2019-06-16 15:35:45
【问题描述】:
我正在学习 Python 中的 GUI,但我不知道为什么 keylistener 不能正常工作,而 action listener 工作正常,但 keylistner 不行。
我试图公开 keylistener 方法 我试图在主类中实现它(在我的例子中是“GUIevents”)
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class GUIevents extends JFrame
{
int buttonclicked = 0;
JButton button;
JTextField entry;
JTextArea output;
public static void main(String[] args)
{
new GUIevents();
} // main
public GUIevents()
{
// Form
.....
///////
JPanel p = new JPanel();
button = new JButton("click for event");
entry = new JTextField("",15);
output = new JTextArea(20,20);
// Listneres
ListenForButton bevent = new ListenForButton();
button.addActionListener(bevent);
ListenForKeys kevent = new ListenForKeys();
entry.addKeyListener(kevent);
// adding
...
////
this.setVisible(true);
} // gui event constructor
private class ListenForButton implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == button)
{
buttonclicked++;
System.out.println("button clicked " + buttonclicked + " times");
}
}
} // listenforbutton
private class ListenForKeys implements KeyListener
{
public void KeyPressed(KeyEvent e)
{
output.append("key hit: " + e.getKeyChar() + "\n");
}
public void KeyReleased(KeyEvent arg0)
{
}
public void KeyTyped(KeyEvent arg0)
{
}
}
}
我在调试时收到此错误并感谢您 .................... ..................................................... .....................(我需要添加这个,所以我可以发布抱歉)
GUIevents.java:97: error: GUIevents.ListenForKeys is not abstract and does not override abstract method keyReleased(KeyEvent) in KeyListener
private class ListenForKeys implements KeyListener
【问题讨论】:
-
Java 区分大小写,因此
public void KeyReleased(KeyEvent arg0)与(正确版本)public void keyReleased(KeyEvent arg0)不同。总是在你的方法覆盖前面加上@Override注解,这样你以后就不会犯同样的错误了。
标签: java swing keylistener