2012-01-15 4 views
0

여러 JFrame이 필요한 앱을 개발 중입니다. JFrame은 파일에 기록한 다음 삭제합니다. KeyListener가 각 클래스에서 KeyListener를 만들 필요없이 전체 프로젝트에서 동일한 키 누름을 수신하도록하고 싶습니다. 방법이 있습니까?전체 프로젝트에 KeyListener를 추가하려면 어떻게해야합니까?

+4

일반적으로 키 바인딩을 사용하지만 리스너 또는 바인딩 여부는 여전히 구성 요소와 관련되어 있습니다. 그건 그렇고, 멍청한 것에 대해 유감 스럽지만 JFrames를 바꾸는 디자인은 악취가납니다. 대신 CardLayout을 통해 JPanels를 바꿀 수 없습니까? 사용자는이 점을 높이 평가할 것입니다. –

+1

아, 그건 생각 못했어요. 나는 쉽게 가장 나쁜 실수를 저질 렀습니다. 고맙습니다. 카드 레이아웃을 사용하고 프로그램 시작시 키 바인딩을 추가 할 수 있습니다. – Notchos

+0

* "여러 개의 JFrames가 필요한 앱을 개발 중입니다."* 아니야. 하나의 화면에 많은 GUI 요소를 포함시키는 12 가지의 다른 방법이 있습니다. –

답변

3

나는 key bindings을 사용해야한다는 것에 동의하지만, 허용 된 대답을 삭제할 수 없으므로이 부분을 남겨 두어야합니다.

+1

@ Justin : "모든 문제에 대해 단순하고 우아하고 잘못된 솔루션이 있습니다."이것은 중요한 사례입니다. 포커스를 요청하는 GUI에 구성 요소를 추가하자 마자 실패하게되므로 작동하지 않습니다. –

+0

이 맞지만, 위의 코드를 활용하여 Keylistener를 임의의 구성 요소에 추가 할 수 있습니다. –

+0

-1, KeyListener를 사용하는 것은 좋지 않습니다. 모든 구성 요소에 키 수신기를 추가하는 끔찍한 솔루션입니다. – camickr

관련 문제