JPanel透明度问题

时间:2011-01-04 05:14:43

标签: java swing transparency jlabel

我有一个深灰色JPanel,上面有JLabel。我将new Color(0, 0, 0, .5f)(透明)设置为JLabel的背景,并使用按钮多次更改文本。问题是,每次更改文本时,前一个文本仍然保留在新文本后面。我将文本从“123456789”更改为“1234567”,“12345”和“123”。这是截图:

alt text

如何摆脱这种“阴影”?

3 个答案:

答案 0 :(得分:5)

查看Backgrounds With Transparency以获取解释和可能的解决方案。

将来发布一个SSCCE来证明问题,而不是图片。

答案 1 :(得分:3)

此相关example也使JPanel半透明。

答案 2 :(得分:2)

试试这个,也许它会解决你的问题: 在行动中自我形成..

public void actionPerformed(ActionEvent e) {
    final JLabel tmpLabel = new JLabel(value[++i]); //change text
    label.setFont(new Font("Times New Roman", 1, 36));
    label.setForeground(new Color(255, 255, 255));
    label.setBackground(new Color(0, 0, 0, .5f));
    label.setHorizontalAlignment(SwingConstants.CENTER);
    label.setOpaque(true);
    label.setBounds(10, 10, 270, 70);
    label = tmpLabel; //replace the entire label with a new label
}