У меня есть JLabel в JFrame с полупрозрачным фоном, но я получаю некоторые артефакты вокруг букв.Артефакты на прозрачном фоне
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
JLabel label = new JLabel("Hello World!");
frame.setPreferredSize(new Dimension(200, 200));
frame.setUndecorated(true);
frame.setBackground(new Color(128, 128, 128, 128));
//label.setOpaque(false);
//label.setBackground(new Color(0, 0, 0, 0));
//((JPanel) frame.getContentPane()).setOpaque(false);
//((JPanel) frame.getContentPane()).setBackground(new Color(0, 0, 0, 0));
frame.add(label);
frame.pack();
frame.setVisible(true);
}
}
Я уже пытался применять непрозрачность этих компонентов без удачи. Я бы хотел, чтобы все компоненты были полностью непрозрачными, поэтому прозрачность java7 для пикселя для JFrame кажется единственным решением.
Это сообщение относится к повторному использованию цветов фона и поэтому становится все более и более непрозрачным, но не касается артефактов вокруг букв. – NCode
@NCode Публикация связана с ответственностью компонента с непрозрачным свойством, гарантирующим полную окраску фона компонента. Когда вы используете прозрачный цвет на непрозрачном компоненте, у вас могут возникнуть проблемы с живописью. В проводке дается «пример» того, что может произойти. Это не ограничивает проблемы с живописью. – camickr