Package stephencarmody.fonttexture

Source Code of stephencarmody.fonttexture.FontTexture

package stephencarmody.fonttexture;

import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.io.File;
import java.io.IOException;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public final class FontTexture {
   
    // GUI Components
    private static JFrame frame;
    private static ToolBar toolbar;
    private static Texture texture;
   
    /** Updates the texture when a new family or style is provided */
    public static void update(String family, int style) {
        frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        texture.setFont(family, style);
        frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    }
   
    /**
     * Saves the current texture to the specified file.
     * 
     * @throws IOException
     */
    public static void save(File f) throws IOException {
      texture.save(f);
    }
   
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        toolbar = new ToolBar();
        frame = new JFrame("Font Texture");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setIconImage(new ImageIcon(toolbar.getClass().getResource("icons/fonttexture.png")).getImage());
        frame.addComponentListener( new ComponentAdapter() {
            public void componentResized(ComponentEvent e)
            {
              int size = Math.max(frame.getWidth(), frame.getHeight());
              size = texture.setSize(size);
              frame.pack();
            }
          });
        frame.add(toolbar, BorderLayout.NORTH);
        texture = new Texture(256);
        frame.add(texture, BorderLayout.CENTER);
        frame.pack();
        toolbar.actionPerformed(null);
        frame.setVisible(true);
    }

    /** Application entrypoint. */
    public static void main(String[] args) {
        // Schedule a job for the event-dispatching thread
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
   
}
TOP

Related Classes of stephencarmody.fonttexture.FontTexture

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.