2009-09-27 7 views
0

방금 ​​libBeanShell을 만났습니다. 그리고 컴파일없이 코드를 실행하는 실행 버튼으로 Java 편집기를 만들고 있습니다. 텍스트 편집기 구성 요소의 경우 오픈 소스 jEdit Syntax Package을 사용합니다. 여기에 데모 링크가 있습니다 : link.Java : 구문 강조 표시 구성 요소 키

이제 사용자가 Enter 키를 누를 때마다 추가되는 코드에 이전 줄과 같은 수의 탭이 자동으로 추가됩니다. 그 코드를 간단하게 JTextArea으로 테스트하여 올바르게 작동합니다. 하지만 키 이벤트가 작동하지 않는 것 같습니다 JEditTextArea 이 JComponent를 JPanel에 넣었습니다.

JEditTextArea은 lib의 편집기 구성 요소입니다. (확장 JComponent)

답변

1

JEditTextArea은 일반적인 스윙 JTextComponent처럼 동작하지 않습니다. JEditTextArea의 오버라이드 된 processKeyEvent 코드를 참조하십시오. 특히, 성능 향상을 위해 KeyListener를 피할 수 있습니다.

JEditTextArea에 키 처리 논리를 추가 한 방법은 DefaultInputHandler을 서브 클래스 화하고 addDefaultKeyBindings을 재정의하고 원하는 바인딩과 로직을 사용하여 호출합니다.

+0

찾았습니다. 하지만 다른 lib, mutch를 사용했습니다. 'jsyntaxpane-0.9.5-b27.jar'는 이름입니다. –