0
CTRL + C를 누르면 특정 문자열을 JEditorPane의 현재 캐럿 위치로 인쇄하려고합니다. 두 가지 주요 이벤트를 처리하고 현재 캐럿 위치로 인쇄하는 방법을 잘 모르겠습니다. API는 기술을 잘 설명하지 못합니다. 나는 다음과 같이 될 것이라고 생각합니다 :Ctrl + C를 누를 때 JEditorPane의 캐럿 위치에 문자열을 인쇄하십시오.
@Override
public void keyPressed(KeyEvent e) {
if((e.getKeyChar()==KeyEvent.VK_CONTROL) && (e.getKeyChar()==KeyEvent.VK_C))
//JEditorPane.getCaretPosition();
//BufferedWriter bw = new BufferedWriter();
//JEditorPane.write(bw.write("desired string"));
}
누군가가 이것이 작동 할 수 있다고 말할 수 있습니까?
: 여기
전체 예입니다 :이 상황에서 키 이벤트는 편집기 창에서 유래 한 수 있음을 알고 있다면 당신은 다음과 같은 뭔가를 할 수 디버거에서 실행했을 때 KeyEvent를 포착하고 keyPressed() 메서드로 갔지만 아무 것도하지 않았으므로 오류가 발생하지 않았습니다. 나는 당신이했던 것처럼 새로운 인스턴스를 만드는 대신 프로그램의 시작 부분에서 초기화 한 전역 JEditorPane을 사용했습니다. 왜 아직도 아무 것도하지 않을 수도 있다는 것을 아십니까? – ridecontrol53메모리에서 코딩 할 때 발생하는 문제입니다. 수정 자에 대한 상수를 잘못 지정했습니다. 현재 사용중인 수정자를 사용하면 수정자가 작동합니다. – Sticks
고마워요. 훌륭하게 작동합니다. 그것은 전부'keyPressed()'메쏘드를 어떻게'addKeyListener()'에 넣는 지 이상하게 들립니다. – ridecontrol53