2012-12-29 2 views
1

나는 JRadioButtons 그룹을 가지고 있습니다. 내 JRadioButtons에 텍스트 대신 이미지를 사용하고 싶습니다. 그래서 나는 이것을 사용해야 할 것입니다 :텍스트 대신 JRadioButtons에서 이미지 사용

JRadioButton(Icon icon, boolean selected) 

이제는이 아이콘을 만드는 방법에 대해 잘 모르는 것이 문제입니다. 사용하려는 이미지가 있고 소스 코드 폴더에 이미지를 복사했습니다. .tiff 형식입니다. 그 .tiff 이미지 (내가 믿는 inputStream)를 읽고 그것을 JRadioButton을 가질 수 있도록 아이콘으로 변환하고 싶습니다.

구현하는 데 도움을주십시오.

미리 감사드립니다.

+0

봐 :

당신은 당신이 그렇게이 일을해야 바로 src 폴더로 붙어있다. 이미지를 사용하는 생성자를 사용하십시오. –

+0

아이콘을 페인트 할 수 있습니다 .http : //docs.oracle.com/javase/6/docs/api/javax/swing/Icon.html – ridoy

+0

페인트하고 싶습니다. 이미지를 사용하고 싶습니다. 내 소스 폴더에있다. 이 생성자를 사용하여 시도 : ImageIcon (String filename)하지만 작동하지 않습니다. –

답변

1

이미지를 소스 폴더의 com.foo.bar 패키지에 넣고 빌드 프로세스가이 파일을 클래스로 복사하여 응용 프로그램을 실행할 때 classpath에 있어야한다고 가정합니다 (모든 IDE가 기본적으로 수행하는 작업 임).

new ImageIcon(MyClass.class.getResource("/com/foo/bar/MyImage.png")) 

아이콘을 사용하면됩니다.

Java가 tiff 형식을 기본으로 지원하는지 잘 모르겠습니다. 따라서 이미지를로드하기 위해 지원되는 다른 형식으로 변환해야 할 수 있습니다 (gif, JPEG 및 PNG가 정상적으로 작동 함).

+0

대신 /com/foo/bar/MyImage.png jpeg (tiff가 아닌) 디렉토리를 src 폴더에 넣습니다. 내가 그것을 실행할 때 그것은 작동하지 않았다. 또한 내가 서버에 Java 애플릿을 넣을 때 내 이미지를 읽는 방법을 이해하지 못한다. 위치가 바뀌어 버릴 것이다. –

+0

프로그램이 java.lang.NullPointerException을 던지고 있습니다. 그게 무슨 뜻입니까? –

+0

루트에 있다면 경로는'/ MyImage.jpg'가됩니다. 아니, 애플릿에서 변경되지 않습니다. 이미지가 클래스 경로에 있으면 그 방향으로로드됩니다. NPE가 코드를 보지 않고 NPE가 의미하는 바가 무엇인지, 그리고 스택 추적을 말할 수는 없습니다. –

1

NullPointerException이 발생하는 경우 이는 이미지가 사용자가 나타내는 경로에 있지 않음을 의미합니다. 은`ImageIcon`의 API에서

new ImageIcon(getClass().getResource("icon.jpg")) 
+0

작동합니다! 어떻게 설명 할 수 있니? 왜 우리는 "getClass()"가 필요한가? –

+0

'MyClass.class.getResource()'와'getClass(). getResource()'가 모두 동작해야합니다. 그게 "어떻게"에 대한 당신의 질문에 대답 할 지 모르겠습니다. – aly

+0

예, 지금은 바보 같은 실수를 저질렀습니다. 이미지는 프로젝트 폴더에 있지만 src에는 없었습니다. –

관련 문제