很抱歉标题含糊不清但我想不出我想在标题中做什么。 无论如何,对于文本图像,我使用了JLabel文本并将其添加到Icon。
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而不是在顶部添加新的?[/ p>
由于
答案 0 :(得分:7)
我认为您想要创建的是带有自定义图标的JLabel
你应该创建一个JLabel并设置它的图标,如下所示:
JLabel label = new JLabel(language.getString("translation"));
label.setIcon(new ImageIcon(/* path of your icon */));
如果要修复文本重叠,则应设置文本对齐方式 像这样:
lblText.setHorizontalTextPosition(JLabel.CENTER);
答案 1 :(得分:2)
将文本标签保持为类的字段,只需调用setText()而不是重新创建/添加它们。
答案 2 :(得分:2)
您可以使用setText(" abc")在imageLabel上设置文本,并可以使用setHorizontalTextPosition(JLabel.CENTER)和setVerticalTextPosition(JLabel.BOTTOM)方法定位文本。
dragLabel[i].setText("default");
dragLabel[i].setHorizontalTextPosition(JLabel.CENTER);
dragLabel[i].setVerticalTextPosition(JLabel.BOTTOM);