All pastes #809513 Raw Edit

Mine

public java v1 · immutable
·published 2007-12-08 23:18 UTC
rendered paste body
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class PhotoManager {        public static final String ICONS_DIRECTORY = "fffffffff/icons";        public PhotoManager() {    }        public static void main(String[] args) {        // =====================================================================        // construction of gui elements        // =====================================================================                // create jframe (window)        JFrame frmMain = new JFrame("Photo Manager");        frmMain.setSize(800, 600);                          // default size - 800x600        frmMain.setMinimumSize(new Dimension(800, 600));    // minimum size - 800x600        frmMain.addWindowListener(new WindowAdapter() {     // what to do when the jframe needs to be closed            public void windowClosing(WindowEvent e) {                System.exit(0);            }        });                // ---------------------------------------------------------------------                // make jpanel to contain the gui elements, and use gridbaglayout to control how they appear on the jpanel        JPanel pnlMain = new JPanel(new GridBagLayout());                // make jpanel to contain the image editing function jbuttons        JPanel pnlFunctions = new JPanel(new FlowLayout());                // make a gridbagconstraints object to specify how each element will be laid out on the panel        GridBagConstraints cstMainConstraints = new GridBagConstraints();                // external padding of 10px for every gui element        cstMainConstraints.insets = new Insets(10, 10, 10, 10);                // ---------------------------------------------------------------------        // jbutton: "browse for directory..."        // - gridbaglayout position: (0, 0)        // - gridbaglayout dimensions: 1x1        JButton btnBrowse = new JButton("Browse for Directory...", new ImageIcon(ICONS_DIRECTORY + "/browse-dir.png"));                cstMainConstraints.gridx = 0;        cstMainConstraints.gridy = 0;                cstMainConstraints.gridwidth = 1;        cstMainConstraints.gridheight = 1;                cstMainConstraints.weightx = 0.0;        cstMainConstraints.weighty = 0.0;                //cstMainConstraints.fill = GridBagConstraints.BOTH;                pnlMain.add(btnBrowse, cstMainConstraints);                // ---------------------------------------------------------------------        // jtree: list of subdirectories/files in the directory specified by the user        // (and a jscrollpane to hold the jtree so it remains a static size)        // - gridbaglayout position: (0, 1)        // - gridbaglayout dimensions: 1x3        // - fills all available vertical space        JTree treSubdirectories = new JTree();        JScrollPane scpSubdirectories = new JScrollPane();        scpSubdirectories.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);        scpSubdirectories.getViewport().add(treSubdirectories);                cstMainConstraints.gridx = 0;        cstMainConstraints.gridy = 1;                cstMainConstraints.gridwidth = 1;        cstMainConstraints.gridheight = 3;                cstMainConstraints.weightx = 0.0;        cstMainConstraints.weighty = 1.0;                cstMainConstraints.fill = GridBagConstraints.BOTH;                pnlMain.add(scpSubdirectories, cstMainConstraints);                // ---------------------------------------------------------------------        // jlist: thumbnailed list of images in the selected directory        // (and a jscrollpane to hold the jlist so it remains a static size)        // - gridbaglayout position: (1, 0)        // - gridbaglayout dimensions: 1x1        // - fills all available horizontal space        JList lstThumbnails = new JList();        JScrollPane scpThumbnails = new JScrollPane();        scpThumbnails.getViewport().add(lstThumbnails);                cstMainConstraints.gridx = 1;        cstMainConstraints.gridy = 0;                cstMainConstraints.gridwidth = 1;        cstMainConstraints.gridheight = 1;                cstMainConstraints.weightx = 1.0;        cstMainConstraints.weighty = 0.0;                cstMainConstraints.fill = GridBagConstraints.BOTH;                pnlMain.add(scpThumbnails, cstMainConstraints);                // ---------------------------------------------------------------------        // jlabel: selected image file name        // - gridbaglayout position: (1, 1)        // - gridbaglayout dimensions: 1x1        // - fills all available horizontal space        JLabel lblFileName = new JLabel("Welcome to Photo Manager");        lblFileName.setFont(new Font("Verdana", Font.BOLD, 24));        lblFileName.setHorizontalAlignment(SwingConstants.CENTER);        lblFileName.setVerticalAlignment(SwingConstants.CENTER);                cstMainConstraints.gridx = 1;        cstMainConstraints.gridy = 1;                cstMainConstraints.gridwidth = 1;        cstMainConstraints.gridheight = 1;                cstMainConstraints.weightx = 1.0;        cstMainConstraints.weighty = 0.0;                cstMainConstraints.fill = GridBagConstraints.BOTH;                pnlMain.add(lblFileName, cstMainConstraints);                // ---------------------------------------------------------------------        // jlabel: the currently selected image        // - gridbaglayout position: (1, 2)        // - gridbaglayout dimensions: 1x1        // - fills all available horizontal and vertical space        JLabel lblImage = new JLabel(            "<html>To get started:<br /><br /><ol>" +            "<li>Click \"Browse for Directory...\" and select a directory containing photos.</li>" +            "<li>Choose a photo from the thumbnail list above, or from the panel to the left.</li>" +            "<li>Perform additional functions on the photo using the panel below.</li>" +            "</ol></html>"        );        lblImage.setBorder(new LineBorder(Color.BLACK));        lblImage.setFont(new Font("Verdana", Font.BOLD, 12));        lblImage.setHorizontalAlignment(SwingConstants.CENTER);        lblImage.setVerticalAlignment(SwingConstants.CENTER);                cstMainConstraints.gridx = 1;        cstMainConstraints.gridy = 2;                cstMainConstraints.gridwidth = 1;        cstMainConstraints.gridheight = 1;                cstMainConstraints.weightx = 1.0;        cstMainConstraints.weighty = 1.0;                cstMainConstraints.fill = GridBagConstraints.BOTH;        //cstMainConstraints.anchor = GridBagConstraints.CENTER;                pnlMain.add(lblImage, cstMainConstraints);                        // ---------------------------------------------------------------------        // jbutton: "rotate image" function        JButton btnFunctionRotate = new JButton("Rotate", new ImageIcon(ICONS_DIRECTORY + "/func-rotate.png"));                pnlFunctions.add(btnFunctionRotate);                // ---------------------------------------------------------------------        // jbutton: "resize image" function        JButton btnFunctionResize = new JButton("Resize", new ImageIcon(ICONS_DIRECTORY + "/func-resize.png"));                pnlFunctions.add(btnFunctionResize);                // ---------------------------------------------------------------------        // jbutton: "auto-fix" function        JButton btnFunctionAutoFix = new JButton("Auto-Fix", new ImageIcon(ICONS_DIRECTORY + "/func-autofix.png"));                pnlFunctions.add(btnFunctionAutoFix);                // ---------------------------------------------------------------------        // jbutton: "print" function        JButton btnFunctionPrint = new JButton("Print", new ImageIcon(ICONS_DIRECTORY + "/func-print.png"));                pnlFunctions.add(btnFunctionPrint);                // ---------------------------------------------------------------------        // jpanel: container for image editing function buttons        // - gridbaglayout position: (1, 3)        // - gridbaglayout dimensions: 1x1        // - fills all available horizontal space                cstMainConstraints.gridx = 1;        cstMainConstraints.gridy = 3;                cstMainConstraints.gridwidth = 1;        cstMainConstraints.gridheight = 1;                cstMainConstraints.weightx = 0.0;        cstMainConstraints.weighty = 0.0;                cstMainConstraints.fill = GridBagConstraints.HORIZONTAL;                pnlMain.add(pnlFunctions);                // =====================================================================                // add gridbaglayout to jframe        frmMain.add(pnlMain);                // make jframe visible        frmMain.setVisible(true);    }    }