import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;

public class FontScalingBugReproducer
        extends JFrame {

    private static final long serialVersionUID = 1L;

    public static void main(String[] args)
            throws Exception {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        JFrame window = new JFrame();
        buildGui(window);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setLocation(800, 500);
        window.pack();
        window.setVisible(true);
    }

    private static void buildGui(JFrame window) {
        window.setTitle("Font scaling bug reproducer");

        JMenuBar menuBar = new JMenuBar();
        menuBar.add(new JMenu("Edit"));
        menuBar.add(new JMenu("View"));
        window.setJMenuBar(menuBar);

        JPanel panel = new JPanel();

        JLabel label = new JLabel();
        label.setText("Default JLabel font is " + printFont(label));
        panel.add(label);

        JTextField text = new JTextField();
        text.setText("Default JTextField font is " + printFont(text));
        panel.add(text);

        window.add(panel);
    }

    private static String printFont(Component comp) {
        return comp.getFont().getFontName() + " " + comp.getFont().getSize();
    }
} 