2012-06-22 4 views
1

안녕하세요? 누구든지 다음과 같은 문제가있었습니다 : 한 번에 둘 이상의 필드에서 커서 깜박임? 필자의 경우 다음과 같은 일이 발생합니다. JTextField 필드를 두 번 클릭하면 JDialog가 열려이 부분을 닫은 후 JDialog가 열리고 포커스는 화면을 열기 전에 클릭 한 필드로 다시 이동합니다.두 필드에서 커서 깜박임 (JTextField)

이 동작을 수행하면 두 필드가 동시에 깜박입니다 (일반적으로 첫 번째 필드 화면과 efetuei 두 번 클릭하는 필드). 이 매체는 무작위이며 발생하지 않는 경우가 있습니다. 시간이 필드이며, 시간은 정확하게 깜박이는 필드에있는 또 다른입니다 (q는 내가 아는 분명한 것 같다 클래스 사용해, DefaultCaret 더 구체적으로 actionPerformed 메소드에 포함 된 내부 클래스 처리기를 디버깅 할 때, 그 을 실현

). 그러나 그들은 메소드를 호출하는 Java의 내부 클래스입니다.

Tab 키를 사용하여 필드를 지나갈 때 커서 false가 사라집니다. 내가


JDK 6

사용하고

은 내가 invokeLater() 내에서 초점을 반환하지만 해결했다. 이제 모두는, 포커스 JComponent의 잘못

난 내 자신의 FocusTraversalPolicy을 사용하고 점멸 분야 중 하나입니다 먼저이 영향을 할 수있다 않습니다

플래시

동기화? 재미있는 점은 내 수업에 특히 이상한 치료법이 없다는 것입니다.

나는 표준 자바 클래스의 동기화 된 안정된 getFirstComponent와() 내에서 방법을 사용하는 것으로 나타났습니다,하지만 같은 컨트롤을 추가,하지만 여전히 사실 나를 위해 초점 문제의

+4

이상한 행동입니다.괜찮은 답을 빨리 얻지 못한다면, 문제를 컴파일, 실행 및 시연하는 최소한의 프로그램을 만드는 것을 고려해보십시오. [sscce] (http://sscce.org). –

+1

귀하의 설명도 따라하기가 어렵습니다. 다시 한 번 적절한 솔루션을 얻지 못한다면 위의 게시물을 수정하고 개선하십시오. –

+1

Native OS (JDK 6_xxx)와 함께 사용하고 Look & Feel을 사용하십시오. Windows 플랫폼에서 시뮬레이션 할 수 없으므로 ..., – mKorbel

답변

5

확인하지 않습니다.

일반적으로 JTextComponent looses 포커스 setCaretVisible(false)/setSelectionVisible(false)라고 불리우는 경우와 반대의 일이 발생했을 때 발생합니다.

을 닫은 후 JDialoginvokeLater() 내부에 초점을 반환하려고합니다. JDialog 님의 부모 중 첫 번째로 주목할만한 JComponent이 무엇인지 확인하십시오. 내가 개발하고 있어요 프로젝트가 매우 큰, 그래서 동시에를 통해 초점을 맞출 필요로 구현

이 프로젝트는 많은 구성 요소, 테이블을 가지고 있으며, 컨테이너의 작은 예를하지 않기 때문에

0

이러한 상황이 발생합니다.

스윙, 실행을위한 대기열에 넣고, 많은 스레드를 처리 한 다음 실행하는 것으로 밝혀졌습니다. 실행을 끝내지는 않았지만 grabFocus() 또는 requestFocus()를 수행 할 수 있습니다. 울지 말고, 첫 번째는 모든 것을 끝내고 내 요구 포커스를 실행해야합니다.

는 스윙 SwingUtilities.invokeLater (...)를 사용 palliatively이 상황을 해결;

팁 주셔서 감사합니다.

관련 문제