Class ViewJFrameCreatePaint

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class ViewJFrameCreatePaint
    extends javax.swing.JFrame
    implements java.awt.event.ActionListener, java.awt.event.MouseListener
    Frame that allows the creation of custom paint brushes. Uses an array of JToggleButtons to create a grid, where the black (on) buttons represent pixels that will be "on" in the Paint Brush Bitset. Images are saved as .PNG files (tiny, generally less than 1kb) in the user_home/mipav/brushes directory (on a per-user basis). the built in brushes are stored in the view/icons directory. Saved brushes can be reloaded-overwritten within this editor as well
    Author:
    linkb
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  ViewJFrameCreatePaint.JDialogGridSize
      Simple dialog to prompt user for grid size
      • Nested classes/interfaces inherited from class javax.swing.JFrame

        javax.swing.JFrame.AccessibleJFrame
      • Nested classes/interfaces inherited from class java.awt.Frame

        java.awt.Frame.AccessibleAWTFrame
      • Nested classes/interfaces inherited from class java.awt.Window

        java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javax.swing.ImageIcon blackImage
      used to create the "selected" state of the buttons
      private javax.swing.JToggleButton[][] buttonGrid
      Array of toggle buttons used to create the grid
      private java.awt.Dimension buttonSize
      Make sure the button size is always this dimension
      private ViewJFrameCreatePaint.JDialogGridSize gridDialog
      The grid resize dialog
      private int gridHeight
      grid's height
      private javax.swing.JPanel gridPanel
      Panel that holds the grid (stored as private variable so as to remove/rebuild the grid as needed
      private int gridWidth
      grid's width
      private java.lang.String loadName
      the name of the loaded brush (used with the above wasLoaded parameter)
      private javax.swing.JMenu openItem
      Menu item that holds the list of paintbrushes to open (for editing)
      private boolean wasLoaded
      switch that tells the save-dialog that this brush was opened from disk, so brush will be re-written on save
      private javax.swing.ImageIcon whiteImage
      used to create the "unselected" state of the buttons
      • Fields inherited from class javax.swing.JFrame

        accessibleContext, rootPane, rootPaneCheckingEnabled
      • Fields inherited from class java.awt.Frame

        CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
      • Fields inherited from class java.awt.Component

        BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Handles action events
      private void buildGrid​(java.util.BitSet preLoad)
      Builds the grid, with or without a pre-loaded BitSet (from an on-disk paintbrush)
      private void init()  
      void mouseClicked​(java.awt.event.MouseEvent e)  
      void mouseEntered​(java.awt.event.MouseEvent mouseEvent)  
      void mouseExited​(java.awt.event.MouseEvent mouseEvent)  
      void mousePressed​(java.awt.event.MouseEvent mouseEvent)  
      void mouseReleased​(java.awt.event.MouseEvent mouseEvent)  
      private void openBrush​(java.lang.String path)
      Opens a brush stored on disk (.png)
      private void populateBrushList()
      populates the menu item showing available brushes to edit
      private void processMouse​(java.awt.event.MouseEvent mouseEvent)
      handles the toggling function of the grid (on/off)
      private void saveBrush()
      saves the drawn paintbrush to a .png
      private void setAllSelected​(boolean selected)  
      • Methods inherited from class javax.swing.JFrame

        addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Frame

        addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.awt.MenuContainer

        getFont, postEvent
    • Field Detail

      • buttonGrid

        private javax.swing.JToggleButton[][] buttonGrid
        Array of toggle buttons used to create the grid
      • buttonSize

        private final java.awt.Dimension buttonSize
        Make sure the button size is always this dimension
      • gridHeight

        private int gridHeight
        grid's height
      • gridWidth

        private int gridWidth
        grid's width
      • gridPanel

        private javax.swing.JPanel gridPanel
        Panel that holds the grid (stored as private variable so as to remove/rebuild the grid as needed
      • openItem

        private javax.swing.JMenu openItem
        Menu item that holds the list of paintbrushes to open (for editing)
      • blackImage

        private javax.swing.ImageIcon blackImage
        used to create the "selected" state of the buttons
      • whiteImage

        private javax.swing.ImageIcon whiteImage
        used to create the "unselected" state of the buttons
      • wasLoaded

        private boolean wasLoaded
        switch that tells the save-dialog that this brush was opened from disk, so brush will be re-written on save
      • loadName

        private java.lang.String loadName
        the name of the loaded brush (used with the above wasLoaded parameter)
    • Constructor Detail

      • ViewJFrameCreatePaint

        public ViewJFrameCreatePaint()
        Main constructor. Prompts user for grid size and shows the grid
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Handles action events
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
      • openBrush

        private void openBrush​(java.lang.String path)
        Opens a brush stored on disk (.png)
      • populateBrushList

        private void populateBrushList()
        populates the menu item showing available brushes to edit
      • saveBrush

        private void saveBrush()
        saves the drawn paintbrush to a .png
      • init

        private void init()
      • setAllSelected

        private void setAllSelected​(boolean selected)
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent mouseEvent)
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent mouseEvent)
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent mouseEvent)
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent mouseEvent)
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
      • processMouse

        private void processMouse​(java.awt.event.MouseEvent mouseEvent)
        handles the toggling function of the grid (on/off)
      • buildGrid

        private void buildGrid​(java.util.BitSet preLoad)
        Builds the grid, with or without a pre-loaded BitSet (from an on-disk paintbrush)
        Parameters:
        preLoad - BitSet that can be null, if passed in then the grid will be built based on the on-disk .png file