2010-02-17 2 views
6

코드는 다음과 같다 :JTextField의 setBorder가 작동하지 않습니까? 또는 그것을합니까?

JTextField txt = new JTextField(); 
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red)); 

텍스트 필드에 setBorder 내 전화를 무시하지만. 변경 내용이 없습니다.

나는 내가 빨간색 테두리를 볼 것입니다 (예를 들어)를 JLabel

JLabel txt = new JLabel(); 
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red)); 

를 교체했다.

아무도 말해 줄 수 있습니까? 또는 JTextField에 테두리를 추가하는 방법을 설명해주세요.

+0

"해야"합니다. JTextField 또는 JTextField를 확장하는 사용자 정의 클래스를 사용하고 있습니까? JTextField에 또 뭐하는거야? 다른 곳에서 국경을 설정하고 있습니까? – Pace

+0

증명 여부는 2 초 정도 걸립니다. 정직합니다. 당신이 내 말을 취하거나 약간의 시험을 치고 자신을 보아라. 어쨌든 다른 정보 비트는 다음과 같습니다. uimanager가 Windows에서 설정되었습니다. UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windowsLookAndFeel"); JTextField를 확장하는 클래스에서 작동하지 않습니다. JTextField 자체를 사용하고 있습니다. –

+0

"증명할"행동은 PL & F, PL & F 버전, 플랫폼, 플랫폼 버전 및 구성에 따라 달라질 수 있습니다. 증명하기 쉽지 않습니다. 컴파일 가능한 예제를 포함 시키면 더 쉽게 시도 할 수 있습니다. –

답변

6

체크 아웃 this explanation/recommendation from the Java API 일반적으로

, 당신이 인 JPanel 또는 JLabel의 이외의 다른 표준 스윙 구성 요소 에 경계를 설정하려는 경우, 우리는 당신이 JPanel의와 세트 구성 요소 를 넣어하는 것이 좋습니다 국경은 JPanel입니다.

그래서 ... JPanel 또는 JLabel에 JTextField를 중첩하고 JPanel 또는 JLabel에 테두리를 넣어야합니다. 빌라!

+5

Heh. 나는 API 문서 라인을 변경하는 것이'BorderUIResource'를 사용하는 코드 공을 수정하는 것보다 쉽다 고 생각합니다. –

관련 문제