2014-08-31 2 views
1

정직하게도 GUI에 익숙하지 않은 나는 그것에 대해 연구하고 있습니다. 제 질문은 이미지와 라벨을 어떻게 결합 할 수 있습니까? 사진 위에 텍스트가 있음을 출력하고 싶습니다. 저는 여기에 참조이미지가있는 JLabel?

import java.awt.Container; 
import java.awt.EventQueue; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

class JavaApplication2 extends JFrame { 


public JavaApplication2(String title, String imageFileName) { 
setTitle("title"); 
ImageIcon icon = new ImageIcon(imageFileName); 
Container pane = getContentPane(); 
JLabel label = new JLabel(icon); 
pane.add(label); 
} 


public static void main(String[] args) { 

EventQueue.invokeLater(new Runnable() { 
public void run() { 

JFrame f = new JavaApplication2("Orca","C:/Users/Balmaceda/Desktop/Naomi  
/Capture.png"); //change pic here 
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
f.pack(); 
f.setVisible(true); 

} 
}); 

} 
} 

에서 가져온 코드와 여기 일이 :

JLabel label = new JLabel(icon); 

everytine 나는 (아이콘)를 변경 ("아이콘")으로는 만 단어 아이콘이 화면에 표시됩니다 . 사진은 더 이상 존재하지 않습니다.

내가 원하는 것은 단어 아이콘이 그림 위에 있습니다. How to Use Labels보고 The JavaDocs for `javax.swing.JLabel

을 취함으로써

답변

3

시작 기본적으로, 당신은 옵션이 있습니다.

당신은 당신이 사용할 수있는 당신은 당신은

JLabel label = new JLabel("This is an icon"); 
label.setIcon(icon); 

을 사용할 수 있습니다

JLabel label = new JLabel(); 
label.setText("This is an icon"); 
label.setIcon(icon); 

을 사용할 수 있습니다

JLabel label = new JLabel("This is an Icon", icon, JLabel.CENTER); 

을 사용할 수 있습니다

JLabel label = new JLabel(icon); 
label.setText("This is an icon"); 

은 ...

label.setVerticalTextPosition(JLabel.TOP); 
label.setHorizontalTextPosition(JLabel.CENTER); 
+0

와우! 그곳에 많은 정보가 있습니다. 큰 도움! 고맙습니다. –

1

당신은 당신이 올바른 생성자, 아이콘이 하나, 문자열을 찾을 수 있습니다에 대한 JLabel API을 확인하는 것이 좋습니다 그리고 당신이 뭔가를 사용할 수있는 이미지를 통해 텍스트를 중앙에 수평 정렬을위한 INT :

public JLabel(String text, 
      Icon icon, 
      int horizontalAlignment) 

HorizontalAlignment로 - SwingConstants로 정의되고있는 정수 LEFT, CENTER, RIGHT, 선행 또는 후행.

0

JLabel의 이미지를 표시하는 또 다른 방법은, HTML을 사용하는 것입니다

String imageInHtml = "<html> Image 1 </br> <img src = \"/absolute/path/to/file.jpg\" height = \"120\" width =\"50\"/> </html>"; 
JLabel l = new JLabel(imageInHtml); 

당신이 쉽게 레이블 여러 이미지을 보여 이런 식으로.

추신 :
클래스 패스의 jar 파일에있는 이미지에서도 작동합니다.