2011-04-08 1 views
1

JLabel을 만들려고하면 텍스트가 완벽하게 표시되고 컨테이너 내에 잘 배치되지만 이미지를 레이블에 추가하려고하면 아무 것도 나타나지 않습니다.JLabels는 어떻게 사용합니까?

ImageIcon icon = new ImageIcon("../media/link_walk.png", "hh"); 
JLabel j = new JLabel("hello"); 
j.setIcon(icon); 
p.add(j); 
+0

패널 p에 레이아웃 관리자가 있습니까? – janhink

+0

[JLabel의 배경색은 어떻게 설정합니까?] (http://stackoverflow.com/questions/2380314/how-do-i-set-a-jlabels-background-color) – trashgod

+0

네, 그게 도움이되었습니다. 배경색은 있지만 이미지를 표시하는 것을 여전히 거부합니다. –

답변

1

JLabels은 기본적으로 불투명하지 않은, 당신은 (참) setOpaque을 통해 그들을 불투명하지 않는 한 그래서 배경 색상 변경은 볼 수 없습니다. 또한 JLabel의 preferredSize는 보유하고있는 텍스트에 따라 달라집니다.

+1

[JLabel의 배경색은 어떻게 설정합니까?] (http://stackoverflow.com/questions/2380314)도 참조하십시오. – trashgod

+0

@trash : 그 링크에 대해 감사드립니다. 이것은 상당히 일반적인 문제로 보인다. –

+1

인기있는 복제본이며 [ 'opaque'] (http://java.sun.com/products/jfc/tsc/articles/painting/#props) 속성 빙산의 일각입니다. :-) – trashgod

3

앱이있는 경우. Jar 파일에 있고 이미지는 응용 프로그램 자원이며 Jar 파일에도 있습니다.

String을 허용하는 ImageIcon 생성자는 파일 경로/이름을 나타냅니다. String은 파일 경로/이름을 나타냅니다. File 오브젝트를 Jar의 자원에 설정할 수 없습니다. Jar의 리소스의 경우에는 URL에 액세스해야합니다.

URL urlToImage = this.getClass().getResource("/media/link_walk.png"); 
// Check the URL! 
System.out.println("urlToImage is " + urlToImage); 

는 그런 다음 URL 받아들이는 ImageIcon 생성자를 사용 .. 같은 것을 사용하는 항아리에 무언가에 URL를 얻으려면.

관련 문제