1

透明窗口 ( AWTUtilities.setWindowOpaque(window, false) ) 中的文本没有正确抗锯齿,并且看起来与不透明窗口中的不同。

我正在使用 JDK 7.40。

知道如何解决它吗?

在下面的程序中,按钮文本没有抗锯齿(正确)。删除 setWindowOpaque() 修复了抗锯齿。

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;

import com.sun.awt.AWTUtilities;

public class TransparentFrame extends JFrame
{
    public TransparentFrame()
    {
        setUndecorated(true);
        AWTUtilities.setWindowOpaque(this, false);
        add(new JButton(new ExitAction()));
    }

    public static void main(String[] args)
    {
        JFrame frame = new TransparentFrame();
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    private class ExitAction extends AbstractAction
    {
        public ExitAction()
        {
            super("Exit");
        }

        @Override
        public void actionPerformed(ActionEvent e)
        {
            System.exit(0);
        }
    }
}
4

0 回答 0