Package gov.nih.mipav.view
Class ViewJFrameCreatePaint
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- gov.nih.mipav.view.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.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.ImageIcon
blackImage
used to create the "selected" state of the buttonsprivate javax.swing.JToggleButton[][]
buttonGrid
Array of toggle buttons used to create the gridprivate java.awt.Dimension
buttonSize
Make sure the button size is always this dimensionprivate ViewJFrameCreatePaint.JDialogGridSize
gridDialog
The grid resize dialogprivate int
gridHeight
grid's heightprivate javax.swing.JPanel
gridPanel
Panel that holds the grid (stored as private variable so as to remove/rebuild the grid as neededprivate int
gridWidth
grid's widthprivate 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 saveprivate javax.swing.ImageIcon
whiteImage
used to create the "unselected" state of the buttons-
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
-
-
Constructor Summary
Constructors Constructor Description ViewJFrameCreatePaint()
Main constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent e)
Handles action eventsprivate 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 editprivate 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 .pngprivate 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
-
-
-
-
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
-
gridDialog
private ViewJFrameCreatePaint.JDialogGridSize gridDialog
The grid resize dialog
-
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)
-
-
Method Detail
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Handles action events- Specified by:
actionPerformed
in interfacejava.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 interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseReleased
in interfacejava.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
-
-