很抱歉标题含糊其辞,但我想不出我想要在标题中做什么。无论如何,对于图像上的文本,我使用了JLabel文本并将其添加到图标中。
JLabel icon = new JLabel(new ImageIcon);
icon.setLayout(new GridBagLayout());
add(icon);
JLabel text = new JLabel();
text.setText(language.getString("translation"));
text.setLocation(10, 10);
text.setSize(text.getPreferredSize());
icon.add(text);我正在为我的应用程序做i18n,每次我切换区域设置时,它都会将相同的JLabel添加到前一个,这样你就可以看到一个接一个的文本。如何使用相同的Jlabel而不是在顶部添加一个新的?
谢谢
发布于 2014-03-05 21:55:48
我认为你想创建的是一个带有自定义图标的JLabel
您应该创建一个JLabel并设置其图标,如下所示:
JLabel label = new JLabel(language.getString("translation"));
label.setIcon(new ImageIcon(/* path of your icon */));如果你想修复文本重叠,你应该像这样设置文本对齐方式:
lblText.setHorizontalTextPosition(JLabel.CENTER);
发布于 2014-03-05 21:53:47
保留文本标签作为类的字段,只需调用setText(),而不是重新创建/添加它们。
发布于 2016-05-23 15:56:37
您可以使用setText("abc")在imageLabel上设置文本,并可以使用setHorizontalTextPosition(JLabel.CENTER)和setVerticalTextPosition(JLabel.BOTTOM)方法定位文本。
dragLabel[i].setText("default");
dragLabel[i].setHorizontalTextPosition(JLabel.CENTER);
dragLabel[i].setVerticalTextPosition(JLabel.BOTTOM);https://stackoverflow.com/questions/22199078
复制相似问题