2013-06-09 2 views
1

JTextfieldJPanel에 추가하고 싶습니다. 게임을하기 때문에 페인트 방법을 재정의하고 그림을 그리는 중입니다.JPanel에 JTextfield를 페인트 레이어 위에 추가

JTextField을 추가하는 경우 표시되지 않습니다. 위치를 알고 있다면 클릭하고 텍스트를 추가 할 수도 있지만 JTextField이 깜박입니다.

언제든지 볼 수 있도록 페인트 레이어를 통해 JPanelJTextField을 추가 할 수있는 해결책이 있습니까?

편집 :

대신 페인트의 paintComponent를 오버라이드 (override)하는 경우

이 모든 것이 작동하고 당신은 단순히 JTextField를 추가 할 수 있습니다. trashgod에게 감사드립니다.

+0

나는 이해할 수 없다. 단지'panel.add (textfield)'를 할 수 없다? 그리고 나서'textfield.setVisible (true); '를 사용하십시오. – nachokk

+0

아니요. 할 수 없습니다. 나는이 텍스트 필드를 오버라이드하여 전체 화면을 그리는 내 페인트 방법을 추측하고 있습니다. – Niklas

+1

"스윙 프로그램은'paint()'를 오버라이드하는 대신'paintComponent()'를 덮어 써야합니다."- [AWT와 스윙의 페인팅 : 페인트 방법 *] (http://www.oracle.com/technetwork/java/) painting-140037.html # callbacks). – trashgod

답변

3

텍스트 필드를 추가하려면이 AnimationTest의 아무 곳이나 클릭하십시오. invokeLater()을 사용하고 super.paintComponent(g)을 호출하십시오. 기본 레이아웃의 작동 방식을 보려면 프레임의 크기를 조정하십시오.

+0

문제가 지속되면 질문을 편집하여 발생한 문제를 나타내는 [sscce] (http://sscce.org/)를 포함하십시오. – trashgod

+0

고마워, 나는 코드를보고 이해하려고 노력하고있다. 그러나 이것이 정확한 것이라고 나는 갖고 싶다. – Niklas

+0

시간을 좀 가져보세요. 주저하지 마시고 모든 업데이트의 기초로 사용하십시오. – trashgod