JLabel和Image?

时间:2014-08-31 11:02:03

标签: java swing jlabel

老实说,我对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);

Everytine我将(icon)更改为(“icon”),窗口上只显示单词图标。图片不再存在。

我想要发生的是图标上方的图标。

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

您需要检查JLabel API,以便找到正确的构造函数,一个带有Icon,一个String和一个用于水平对齐的int:

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

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

答案 2 :(得分: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中的图像。