我有一个深灰色JPanel
,上面有JLabel
。我将new Color(0, 0, 0, .5f)
(透明)设置为JLabel
的背景,并使用按钮多次更改文本。问题是,每次更改文本时,前一个文本仍然保留在新文本后面。我将文本从“123456789”更改为“1234567”,“12345”和“123”。这是截图:
如何摆脱这种“阴影”?
答案 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
}