2013-08-11 7 views
1

최근 Nimbus의 기본값을 무시하는 방법을 연구했습니다.Nimbus에서 MouseOver를 사용하여 TextField를 페인트하는 방법은 무엇입니까?

Nimbus의 TextField 기본값 페이지에는 TextField[MouseOver].borderPainter이없고 Button[MouseOver].backgroundPainter이 있습니다.

내가 JButton을 위해 할 수있는 것처럼 MouseOver를 할 때 TextField를 페인트하고 싶습니다.

어떻게하면됩니까? 당신의 도움을 주셔서 감사합니다.

+0

'mouseEntered/mouseExited' 메소드 안에 플래그를 설정 한 후에'JTextField'의'paintComponent()'메소드를 오버라이드하고 커스텀 페인팅을하는 것이 어떻겠습니까? –

+0

하지만 플러그 형 룩앤필에서 그렇게하고 싶습니다. 그래서 나는 Nimbus UIDefaults를 뒤집었다. 그래서 MouseListener를 텍스트 필드에 추가하는 방법은 내가 원하는 것이 아닙니다. – user2671610

+0

'플러그 형 LookAndFeel'에 대한 지식이 충분하지 않아 유효한 대답을 제공하지 못했습니다. ( –

답변

2

버튼이 텍스트 필드와 다릅니다. 기본 금속 LAF에서도 버튼은 마우스의 테두리 변경을 지원하며 텍스트 필드는 변경되지 않습니다. 그래서 Nimbus 텍스트 필드가이 속성을 지원하지 않는다는 것은 놀라운 일이 아닙니다.

텍스트 필드에 MouseListener을 추가하여이 동작을 직접 구현할 수 있습니다. 그런 다음 테두리를 변경하려면 mouseEnteredmouseExited 이벤트를 처리합니다.

+0

하지만 플러그 형 룩앤필에서 그렇게하고 싶습니다. 그래서 Nimbus UIDefaults . 그래서 텍스트 필드에 MouseListener를 추가하는 것이 좋습니다. – user2671610

+0

@ user2671610 Nimbus를 기반으로하는 사용자 정의 L & F에 대한 searcvh, UIManager의 키가있는 accesible xml 파일, 중요한 버그가 누락 된 차이점, 어두운면에 자체 버그가 있음, 하지만 한 곳에 설명되어 있습니다 – mKorbel

+0

Nimbus를 기반으로 한 맞춤형 L & F로 MouseOver를 할 때 TextField를 칠할 수 없습니까? – user2671610

관련 문제