JFrameに半透明の背景を持つJLabelがありますが、文字の周りにアーティファクトがあります。透明な背景のアーティファクト
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);
}
}
私はすでに運なしに、これらのコンポーネントへの不透明度を適用してみました。私はすべてのコンポーネントを完全に不透明にしたいので、JFrameのためのjava7 per-pixel transparencyが唯一の解決策であるようです。
このポストは背景色が再適用され、ますます透明になりますが、文字周辺のアーティファクトは処理しません。 – NCode
@NCode転記は、コンポーネントのバックグラウンドが完全に塗りつぶされていることを保証するために、不透明なプロパティを持つコンポーネントの責任を扱います。不透明なコンポーネント上に透明な色を使用すると、ペイントの問題が発生する可能性があります。転記は、起こりうることの「例」を与える。絵画の問題が何であるかは制限されません。 – camickr