import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class AntialiasFontSample2 {
    private final static String text = "ABC‚ ‚¢‚¤";

    public AntialiasFontSample2() {
        JFrame frame = new JFrame("Antialiased Font Sample");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        
        JComponent comp = new JComponent() {
            public void paintComponent(Graphics g) {
                Graphics2D g2d = (Graphics2D)g;
                
                Font font = new Font("SansSerif", Font.PLAIN, 32);
                g2d.setFont(font);
                
                // HRGB
                g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                                     RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
                g2d.drawString("HRGB:" + text, 10, 40);
                
                // HBGR
                g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                                     RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR);
                g2d.drawString("HBGR:" + text, 10, 80);
                
                // VRGB
                g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                                     RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VRGB);
                g2d.drawString("VRGB:" + text, 10, 120);
                
                // VBGR
                g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                                     RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VBGR);
                g2d.drawString("VBGR:" + text, 10, 160);
            }
        };

        panel.add(comp);

        frame.add(panel);
        frame.setSize(300, 220);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new AntialiasFontSample2();
                }
            });
    }
}

