Java:带有文本和图标的JLabel

时间:2016-07-16 00:04:51

标签: java text icons label jlabel

我想问一下,在单个JLabel中是否有可能有文本图标文本,我的意思是我的String文本中心的图标。

我设法在图标的左侧或右侧移动文字,但我无法弄清楚如何将图标放在中间。

2 个答案:

答案 0 :(得分:5)

  

图标位于我的String文本的中心

JLabel有文字和图标 - 您可以在文字顶部放置标签,但不能有两个文字和一个图标。您可以在正确的布局中使用3 JLabel来实现相同的外观。例如,使用BoxLayout

Box box = Box.createHorizontalBox();
box.add(new JLabel("Text 1"));
JLabel image = new JLabel();
image.setIcon(UIManager.getIcon("OptionPane.errorIcon"));
box.add(image);
box.add(new JLabel("Text 2"));

或者,如果您希望文本位于图像顶部,可以通过设置适当的对齐方式来实现:

JLabel label = new JLabel();
label.setIcon(UIManager.getIcon("OptionPane.errorIcon"));
label.setText("My Text");
label.setHorizontalTextPosition(JLabel.CENTER);
label.setVerticalTextPosition(JLabel.CENTER);

答案 1 :(得分:0)

  

我想问一下,在单个JLabel中是否可以使用文本图标文本

JLabel可以显示简单的HTML:

String html = "<html>before <img src=\"file:someFile.jpg\">after</html>";
JLabel label = new JLabel( html );

但HTML需要更长时间才能呈现,因此您可能需要考虑BoxLayout方法。