我想问一下,在单个JLabel中是否有可能有文本图标文本,我的意思是我的String文本中心的图标。
我设法在图标的左侧或右侧移动文字,但我无法弄清楚如何将图标放在中间。
答案 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
方法。