문제

나는 Java에서 키 리스너를 만들려고하지만 시도 할 때

KeyListener listener = new KeyListener();

Netbeans는 Keylistener가 추상적이라고 말하고 있습니다. 인스턴스화 할 수 없습니다. 나는이 키 리스너의 다른 부분을 놓치고 있다는 것을 알고 있지만, 이번이 처음으로 키 리스너를 사용하는 것이기 때문에 필요한 것이 무엇인지 확실하지 않습니다. 왜 나에게 이것을 말하고 있습니까?

감사,

토메

도움이 되었습니까?

해결책

KeyListener 인터페이스입니다. 무언가에 의해 구현되어야합니다. 그래서 당신은 할 수 있습니다 :

KeyListener listener = new SomeKeyListenerImplementation();

그러나 직접 인스턴스화 할 수는 없습니다. 너 ~할 수 있었다 익명의 내부 수업을 사용하십시오.

KeyListener listener = new KeyListener()
{
    public void keyPressed(KeyEvent e) { /* ... */ }

    public void keyReleased(KeyEvent e) { /* ... */ }

    public void keyTyped(KeyEvent e) { /* ... */ }
};

기본적으로하고 싶은 일에 따라 다릅니다.

다른 팁

Keylistener는 인터페이스이므로 사용하기 위해 구현하는 클래스를 작성해야합니다. Jon이 제안한 바와 같이, 당신은 그것을 인라인으로 구현하는 익명의 클래스를 만들 수 있지만, 각 인터페이스 방법에 대한 빈 메소드를 갖는 Keylistener를 구현하는 추상 클래스 인 KeyAdapter라는 클래스가 있습니다. KeyAdapter를 서브 클래스하는 경우 모든 방법이 아니라 관심있는 메소드를 무시하면됩니다. 따라서 Keypressed에 대해서만 관심이 있다면이 작업을 수행 할 수 있습니다.

KeyListener listener = new KeyAdapter()
{
    public void keyPressed(KeyEvent e) { /* ... */ }
};

이것은 당신에게 약간의 일을 구할 수 있습니다.

Keylistener는 인터페이스이므로 클래스를 기반으로 클래스를 작성하고 기능을 구현할 수 있습니다. 아마도 이것 지도 시간 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top