public class DicomImageBlackout extends JFrame
This class displays images and allows the user to black out burned-in annotation, and save the result.
A main method is provided, which can be supplied with a list of file names or pop up a file chooser dialog.
JFrame.AccessibleJFrame
Frame.AccessibleAWTFrame
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
DicomImageBlackout(String title,
String[] dicomFileNames,
DicomImageBlackout.StatusNotificationHandler snh,
int burnedinflag)
Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addSingleImagePanelToMultiPanelAndEstablishLayout() |
protected void |
addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout() |
protected void |
buildUIComponents() |
protected Dimension |
changeDimensionToFitInMaximumAvailable(Dimension useDimension,
Dimension maxDimension,
boolean onlySmaller) |
protected void |
createCineSliderIfNecessary(int min,
int max,
int value) |
void |
deconstruct() |
void |
dispose() |
protected void |
finalize() |
protected double |
getScaleFactorToFitInMaximumAvailable(double useWidth,
double useHeight,
double maxWidth,
double maxHeight) |
protected void |
loadDicomFileOrDirectory(File currentFile)
Load the named DICOM file and display it in the image panel.
|
protected void |
loadDicomFileOrDirectory(String dicomFileName)
Load the named DICOM file and display it in the image panel.
|
static void |
main(String[] arg)
The method to invoke the application.
|
protected void |
recordStateOfDrawingShapesForNextFile() |
protected Dimension |
reduceDimensionToFitInMaximumAvailable(Dimension useDimension) |
protected void |
showUIComponents() |
protected void |
updateDisplayedFileNumber(int current,
int total) |
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
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, 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
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
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, getPeer, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
protected String ourAETitle
protected String[] dicomFileNames
protected String currentFileName
protected int currentFileNumber
protected Box mainPanel
protected JPanel multiPanel
protected SingleImagePanel imagePanel
protected AttributeList list
protected SourceImage sImg
protected boolean changesWereMade
protected int previousRows
protected int previousColumns
protected Vector previousPersistentDrawingShapes
protected JPanel cineSliderControlsPanel
protected DicomImageBlackout.CineSliderChangeListener cineSliderChangeListener
protected JSlider cineSlider
protected JLabel imagesRemainingLabel
protected EventContext ourEventContext
protected boolean burnInOverlays
protected boolean useZeroBlackoutValue
protected boolean usePixelPaddingBlackoutValue
protected JCheckBox useZeroBlackoutValueCheckBox
protected JCheckBox usePixelPaddingBlackoutValueCheckBox
protected com.pixelmed.display.DicomImageBlackout.OurFrameSelectionChangeListener ourFrameSelectionChangeListener
protected int burnedinflag
protected DicomImageBlackout.StatusNotificationHandler statusNotificationHandler
protected DicomImageBlackout.ApplyActionListener applyActionListener
protected DicomImageBlackout.SaveActionListener saveActionListener
protected DicomImageBlackout.NextActionListener nextActionListener
protected JButton blackoutApplyButton
protected JButton blackoutSaveButton
protected JButton blackoutNextButton
public DicomImageBlackout(String title, String[] dicomFileNames, DicomImageBlackout.StatusNotificationHandler snh, int burnedinflag)
Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.
Each file will be processed sequentially, with the edited pixel data overwriting the original file.
title
- the string to use in the title bar of the windowdicomFileNames
- the list of file names to process, if null a file chooser dialog will be raisedsnh
- an instance of StatusNotificationHandler
; if null, a default handler will be used that writes to stderrburnedinflag
- whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values of BurnedInAnnotationFlagAction
DicomException
protected void recordStateOfDrawingShapesForNextFile()
protected void createCineSliderIfNecessary(int min, int max, int value)
min
- minimum frame number, starting from 1max
- number of framesvalue
- frame number, starting from 1protected void updateDisplayedFileNumber(int current, int total)
protected void loadDicomFileOrDirectory(String dicomFileName)
Load the named DICOM file and display it in the image panel.
dicomFileName
- protected void loadDicomFileOrDirectory(File currentFile)
Load the named DICOM file and display it in the image panel.
currentFile
- protected double getScaleFactorToFitInMaximumAvailable(double useWidth, double useHeight, double maxWidth, double maxHeight)
protected Dimension changeDimensionToFitInMaximumAvailable(Dimension useDimension, Dimension maxDimension, boolean onlySmaller)
protected Dimension reduceDimensionToFitInMaximumAvailable(Dimension useDimension)
protected void addSingleImagePanelToMultiPanelAndEstablishLayout()
protected void addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout()
protected void showUIComponents()
protected void buildUIComponents()
public void deconstruct()
protected void finalize() throws Throwable
public static void main(String[] arg)
The method to invoke the application.
arg
- optionally, a list of files; if absent a file dialog is presented