0

私はJavaプログラミングを学んでおり、本から以下のコードをコンパイルしようとしています。コードをコンパイルしようとすると、このエラーが発生します

Keystrokes is not abstract and does not override abstract method 
    keyTyped (java.awt.event.KeyEvent) in java.awt.event.KeyListener.

また、これは無関係だと思いますが、この本には、このコードのセクションをソース コード (どこか?) に追加するようにも書かれています。

pnl.add ( field) ;
pnl.add (txtArea);

すると、識別子「予期されるエラー」が表示されます。

プログラムコード:

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

  class Keystrokes extends JFrame implements KeyListener
  {
   JPanel pnl = new JPanel(); 

  public static void main (String[ ] args){
      Keystrokes gui = new Keystrokes();
    }

    JTextField field = new JTextField ( 38 );
    JTextArea txtArea = new JTextArea (5, 38);

 public Keystrokes()
    {
     super( "Swing window");
     setSize( 500,200);
     setDefaultCloseOperation( EXIT_ON_CLOSE );
     add(pnl);
     field.addKeyListener (this );

     setVisible( true );
    }

    public void keyPressed(KeyEvent event )
    {
        txtArea.setText("Key Pressed");
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void KeyTyped (KeyEvent event ) {
        throw new UnsupportedOperationException("Not supported yet.");
        txtArea.append("\nCharacter : " + event.getKeyChar() );
    }

    public void keyReleased ( KeyEvent event) 
    {
        int keyCode = event.getKeyCode();
       txtArea.append("\nKey Code : " + event.getKeyCode() );
       textArea.append("\nKey Text : " + event.getKeyText(keyCode));
    }
}
4

3 に答える 3

3

あなたの方法KeyTypedkeyTyped. 大文字小文字が重要です。

于 2012-06-02T21:23:01.170 に答える
1
Keystrokes is not abstract and does not override abstract method keyTyped (java.awt.event.KeyEvent) in java.awt.event.KeyListener.

これは、クラスが実装すると主張するKeyListenerインターフェイスには、Keystrokes実装する必要がある他のメソッドがいくつかあるのに、実装に失敗したことを意味します。メソッドを実装keyTypedし、javadoc を見て、他に見落としがないかどうかを確認してください。

それはあなたの次の問題にあなたを連れて行くはずです。

于 2012-06-02T21:23:03.620 に答える
1

Java では大文字と小文字が区別されます。基本クラスから必要な keyTyped の代わりに、メソッドに KeyTyped という名前を付けました。

于 2012-06-02T21:33:59.213 に答える