在JLabel Icon上添加JLabel文本。使用相同的JLabel文本

时间:2014-03-05 13:24:18

标签: java swing text jlabel

很抱歉标题含糊不清但我想不出我想在标题中做什么。 无论如何,对于文本图像,我使用了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>

由于

3 个答案:

答案 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上设置文本,并可以使用setHorizo​​ntalTextPosition(JLabel.CENTER)和setVerticalTextPosition(JLabel.BOTTOM)方法定位文本。

dragLabel[i].setText("default");
           dragLabel[i].setHorizontalTextPosition(JLabel.CENTER);
           dragLabel[i].setVerticalTextPosition(JLabel.BOTTOM);