Проблема прозрачности JPanel - PullRequest
4 голосов
/ 04 января 2011

У меня темно-серый JPanel с JLabel на нем.Я устанавливаю new Color(0, 0, 0, .5f) (прозрачный) в качестве фона JLabel и изменяю текст несколько раз с помощью кнопки.Проблема в том, что каждый раз, когда текст изменяется, предыдущий текст все еще остается за новым текстом.Я изменяю текст с «123456789» на «1234567», «12345» и «123».Вот скриншот:

alt text

Как мне избавиться от этой "тени"?

Ответы [ 3 ]

5 голосов
/ 04 января 2011

Проверьте Фоны с прозрачностью для объяснения и возможного решения.

И в будущем посте SSCCE , демонстрирующем проблему, а не изображение.

3 голосов
/ 05 января 2011

Этот связанный пример также делает JPanel полупрозрачным.

2 голосов
/ 05 января 2011

попробуйте, может быть, это решит вашу проблему: в действииPeroformed ..

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
}
...