schmitzm.swing.table
Class MutableTable
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
schmitzm.swing.table.MutableTable
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable
- Direct Known Subclasses:
- ColorMapTable
public class MutableTable
- extends JTable
Diese Klasse stellt eine veraenderbare Tabelle dar. Sie erhaelt ein
Kontextmenue, ueber das der Tabelle Datensaetze hinzugefuegt, entfernt oder
geaendert werden koennen. Zudem reagiert die Tabelle automatisch auf einen
Doppelklick mit der Aenderungsaktion.
- Version:
- 1.0
- Author:
- Martin Schmitz (University of Bonn/Germany)
- See Also:
MutableTableModel
,
Serialized Form
Field Summary |
static int |
ITEM_ADD
Konstante fuer den Menuepunkt "Hinzufuegen". |
static int |
ITEM_ALL
Konstante, die alle Menuepunkte beinhaltet. |
static int |
ITEM_CHANGE
Konstante fuer den Menuepunkt "Aendern". |
static int |
ITEM_REMOVE
Konstante fuer den Menuepunkt "Loeschen". |
protected int |
mask
Speichert, welche Menuepunkte fuer das Kontextmenue aktiv sind |
protected MutableTableModel |
model
Speichert die Datenbasis fuer die Tabelle |
Fields inherited from class javax.swing.JTable |
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader |
Methods inherited from class javax.swing.JTable |
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, tableChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
ITEM_ADD
public static final int ITEM_ADD
- Konstante fuer den Menuepunkt "Hinzufuegen".
- See Also:
- Constant Field Values
ITEM_REMOVE
public static final int ITEM_REMOVE
- Konstante fuer den Menuepunkt "Loeschen".
- See Also:
- Constant Field Values
ITEM_CHANGE
public static final int ITEM_CHANGE
- Konstante fuer den Menuepunkt "Aendern".
- See Also:
- Constant Field Values
ITEM_ALL
public static final int ITEM_ALL
- Konstante, die alle Menuepunkte beinhaltet.
- See Also:
- Constant Field Values
model
protected MutableTableModel model
- Speichert die Datenbasis fuer die Tabelle
mask
protected int mask
- Speichert, welche Menuepunkte fuer das Kontextmenue aktiv sind
MutableTable
public MutableTable(MutableTableModel model,
int mask)
- Erzeugt eine neue Tabelle.
- Parameters:
model
- Datenbasis fuer die Tabellemask
- Definiert die Eintraege im Kontextmenue (logische
ODER-Verknuepfung der Konstanten ITEM_ADD
,
ITEM_REMOVE
und ITEM_CHANGE
)- See Also:
ITEM_ADD
,
ITEM_REMOVE
,
ITEM_CHANGE
MutableTable
public MutableTable(MutableTableModel model)
- Erzeugt eine neue Tabelle mit komplettem Kontextmenue.
- Parameters:
model
- Datenbasis fuer die Tabelle- See Also:
ITEM_ALL
setModel
public void setModel(TableModel model)
- Setzt das Datenmodell fuer die Tabelle und ruft
MutableTableModel.initTable(JTable)
auf.
- Overrides:
setModel
in class JTable
- Throws:
UnsupportedOperationException
- falls kein MutableTableModel
uebergeben wird
createPopupMenuListener
public MouseListener createPopupMenuListener()
- Erzeugt einen
MouseListener
der bei einem Popup-Signal (z.B.
Rechtsklick) das Tabellen-Menue oeffnet. In diesem sind alle Menuepunkte
(Aendern, Loeschen, Hinzufuegen) enthalten.
- See Also:
createPopupMenuListener(int)
,
ITEM_ALL
createPopupMenuListener
public MouseListener createPopupMenuListener(int mask)
- Erzeugt einen
MouseListener
der bei einem Popup-Signal (z.B.
Rechtsklick) das Tabellen-Kontextmenue oeffnet.
- Parameters:
mask
- Definiert die Eintraege im Kontextmenue (logische
ODER-Verknuepfung der Konstanten ITEM_ADD
,
ITEM_REMOVE
und ITEM_CHANGE
)- See Also:
ITEM_ADD
,
ITEM_REMOVE
,
ITEM_CHANGE
createPopupMenu
protected MutableTable.PopupMenu createPopupMenu(int mask)
- Erzeugt eine Instanz des
MutableTable.PopupMenu
. Unterklassen koennen diese
Methode ueberschreiben, um das Menu zu erweitern.
- Parameters:
mask
- Definiert die Eintraege im Kontextmenue (logische
ODER-Verknuepfung der Konstanten ITEM_ADD
,
ITEM_REMOVE
und ITEM_CHANGE
)- See Also:
ITEM_ADD
,
ITEM_REMOVE
,
ITEM_CHANGE
getMask
public int getMask()
- Liefert die Bit-Maske, welche Punkt im Kontextmenue aktiv sind.
- See Also:
ITEM_ADD
,
ITEM_REMOVE
,
ITEM_CHANGE
,
ITEM_ALL
performChange
protected void performChange()
- Wird aufgerufen, wenn der Menuepunkt "Ändern" gewaehlt wird.
Ruft fuer jede selektierte Zelle
MutableTableModel#performChangeData(..)
auf. Ist nur eine zeilenweise Auswahl in der Tabelle erlaubt, so
wird die obige Methode nur fuer jede selektierte Zeile aufgerufen.
Der Aufrufparameter fuer die Spalte ist in diesem Fall die Spalte, auf die geklickt
wurde.
Erwirkt anschliessend ein AbstractTableModel.fireTableDataChanged()
- See Also:
JTable.setRowSelectionAllowed(boolean)
performRemove
protected void performRemove()
- Wird aufgerufen, wenn der Menuepunkt "Löschen" gewaehlt wird.
Ruft fuer jede selektierte Zeile
MutableTableModel#performRemoveRow(..)
auf. Dabei wird rueckwaerts vorgegangen - also die letzte selektierte
Zeile zuerst -, damit der Zeilenindex ueber alle
MutableTableModel.performRemoveRow(int)
-Aufrufe konsistent bleibt.
Erwirkt anschliessend automatisch ein AbstractTableModel.fireTableDataChanged()
performAdd
protected void performAdd()
- Wird aufgerufen, wenn der Menuepunkt "Hinzufügen" gewaehlt wird.
Ruft
MutableTableModel#performAddRow()
auf.
Erwirkt anschliessend automatisch ein AbstractTableModel.fireTableDataChanged()
performDoubleClick
public void performDoubleClick()
- Wird aufgerufen, wenn ein Doppelklick auf die Tabelle vorgenommen wird.
Standardmaessig wird
performChange()
aufgerufen (sofern
der Aendern-Menuepunkt aktiv ist!).
Unterklassen koennen diese Methode ueberschreiben, um diesem Ereignis
eins andere Aktion zuzuweisen oder das Ereignis gaenzlich zu unterdruecken.
createScrollPane
public JScrollPane createScrollPane()
- Erzeugt ein
JScrollPane
fuer die Tabelle. Dieses erhaelt automatisch
den gleichen ToolTip-Text und Popupmenue-Listener wie die Tabelle.
Der Anwender kann somit auch auf das ScrollPane klicken, um die Tabellen-Optionen
anzuwaehlen.