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.MouseListenerFrame 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 classViewJFrameCreatePaint.JDialogGridSizeSimple 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.ImageIconblackImageused to create the "selected" state of the buttonsprivate javax.swing.JToggleButton[][]buttonGridArray of toggle buttons used to create the gridprivate java.awt.DimensionbuttonSizeMake sure the button size is always this dimensionprivate ViewJFrameCreatePaint.JDialogGridSizegridDialogThe grid resize dialogprivate intgridHeightgrid's heightprivate javax.swing.JPanelgridPanelPanel that holds the grid (stored as private variable so as to remove/rebuild the grid as neededprivate intgridWidthgrid's widthprivate java.lang.StringloadNamethe name of the loaded brush (used with the above wasLoaded parameter)private javax.swing.JMenuopenItemMenu item that holds the list of paintbrushes to open (for editing)private booleanwasLoadedswitch that tells the save-dialog that this brush was opened from disk, so brush will be re-written on saveprivate javax.swing.ImageIconwhiteImageused 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 voidactionPerformed(java.awt.event.ActionEvent e)Handles action eventsprivate voidbuildGrid(java.util.BitSet preLoad)Builds the grid, with or without a pre-loaded BitSet (from an on-disk paintbrush)private voidinit()voidmouseClicked(java.awt.event.MouseEvent e)voidmouseEntered(java.awt.event.MouseEvent mouseEvent)voidmouseExited(java.awt.event.MouseEvent mouseEvent)voidmousePressed(java.awt.event.MouseEvent mouseEvent)voidmouseReleased(java.awt.event.MouseEvent mouseEvent)private voidopenBrush(java.lang.String path)Opens a brush stored on disk (.png)private voidpopulateBrushList()populates the menu item showing available brushes to editprivate voidprocessMouse(java.awt.event.MouseEvent mouseEvent)handles the toggling function of the grid (on/off)private voidsaveBrush()saves the drawn paintbrush to a .pngprivate voidsetAllSelected(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:
actionPerformedin 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:
mouseEnteredin interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseExitedin interfacejava.awt.event.MouseListener
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClickedin interfacejava.awt.event.MouseListener
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mousePressedin interfacejava.awt.event.MouseListener
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseReleasedin 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
-
-