簡體   English   中英

JLabel和Image?

[英]JLabel with Image?

老實說,我對GUI並不那么熟悉,但我仍在對其進行研究。 我的問題是,如何合並圖像和標簽? 我想要輸出圖片上方有文字的信息。 這是我從參考中獲得的代碼

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

我將(icon)更改為(“ icon”),只有單詞圖標顯示在窗口上。 圖片不再存在。

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

首先看一下如何 為`javax.swing.JLabel 使用標簽JavaDocs。

基本上,您有很多選擇。

您可以使用

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

您將需要檢查JLabel API ,在那里您將找到正確的構造函數,一個帶有Icon,String和一個用於水平對齊的int的構造函數:

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

horizo​​ntalAlignment-在SwingConstants中定義的以下常量之一:LEFT,CENTER,RIGHT,LEADING或TRAILING。

在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中的圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM