首页 > 解决方案 > 如何在 java swing 中修复这个 keylistener 错误

问题描述

我正在用 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

标签: javaswingkeylistener

解决方案


您没有覆盖任何 KeyListener 接口方法,请检查您的拼写。Java 方法以小写字母开头,您在 ListenForKeys 类的所有方法定义中都将 K 大写。


推荐阅读