2014-08-31 76 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我改變(圖標)到(「圖標」),在彈出的窗口上只有兩個字圖標。圖片不再存在。

我想要發生的是圖片上方的單詞圖標。

回答

3

開始採取看看How to Use LabelsThe JavaDocs for `javax.swing.JLabel

基本上,你有多種選擇。

您可以使用

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

您可以使用

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

您可以使用

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

您可以使用

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

要居中了你可以使用類似的圖像文本...

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

哇!那裏有很多信息。大幫忙!非常感謝你。 – 2014-08-31 12:00:05

1

您將要檢查JLabel API因爲有你會找到正確的構造函數,一個帶有圖標,String和int對於水平取向:

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

的Horizo​​ntalAlignment - SwingConstants中定義的以下常量的:左,中,右,前導或尾隨。

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); 

這種方式,你的表現也很容易多個圖像一個標籤。

PS:
這也適用於類路徑中的jar中的圖像。