Class JKeyValueList
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class JKeyValueList
extends javax.swing.JPanel
Achtung: Alle Werte sollten vom gleichen Typ sein. Für beliebige gemischte Datentypen kann der Typ 'Object' verwendet werden - in diesem Fall werden die Werte allerdings zu Strings, sobald sie editiert wurden, unabhängig von ihrem vorherigen Typ, da der DefaultCellEditor die toString-Methode verwendet. Für Details siehe die Beschreibung des Parameters valueClass in setData().
- Author:
- Stefan
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JKeyValueList.MyJTable
JTable mit speziellem Verhalten: Zellen in der ersten Spalte können nicht fokussiert werden.static interface
JKeyValueList.UpdatesListener
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
Field Summary
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Constructor Summary
Constructors Constructor Description JKeyValueList()
Creates new form JKeyValueList1 -
Method Summary
Modifier and Type Method Description void
addUpdatesListener(JKeyValueList.UpdatesListener listener)
Fügt einen UpdatesListener hinzu.void
clearUpdatesFlag()
Löscht das Flag, das anzeigt, ob eine Bearbeitung mindestens einer Zelle stattgefunden hat.java.util.LinkedHashMap<java.lang.String,java.lang.Object>
getData()
Liefert die Daten als LinkedHashMap.boolean
hasUpdates()
Zeigt an, ob eine Bearbeitung mindestens einer Zelle stattgefunden hat.boolean
removeUpdatesListener(JKeyValueList.UpdatesListener listener)
Entfernt einen UpdatesListener.void
setData(java.util.LinkedHashMap<java.lang.String,? extends java.lang.Object> map, java.lang.Class valueClass)
Füllt die Tabelle mit einem Datensatz.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, 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, doLayout, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
JKeyValueList
public JKeyValueList()Creates new form JKeyValueList1
-
-
Method Details
-
setData
public final void setData(java.util.LinkedHashMap<java.lang.String,? extends java.lang.Object> map, java.lang.Class valueClass)Füllt die Tabelle mit einem Datensatz. Löscht zudem das Updates-Flag: hasUpdates liefert anschließend false, bis wieder eine Bearbeitung einer Zelle stattgefunden hat.- Parameters:
map
- Eine Hashmap mit Schlüssel-Werte-Paaren. Falls map == null übergeben wird, dann wird ein leerer Datensatz gesetzt. Es kann dann nichts eingegeben werden.valueClass
- Die Klasse, der sämtliche Werte angehören. Folgende Besonderheiten sind zu beachten:- Verwendung des Typs Object: Datenmodell kann beliebige gemischte Daten vom Typ Object enthalten. Sobald die Daten bearbeitet werden, werden sie dann jedoch zu Strings (weil der DefaultCellEditor die toString-Methode verwendet).
- Verwendung von Double.class oder Float.class: Alle Werte sollten Zahlen sein. Falls andere Datentypen vorkommen, werden diese mittels toString() dargestellt, lassen sich aber nicht editieren. (D.h., die GUI-Komponente ist hier tolerant, auch wenn dies keine sinnvolle Verwendung der Komponente darstellt.)
- Verwendung anderer Klassen, z.B. Boolean.class: Falls andere als der angegebene Datentyp vorkommen, kommt es zu ClassCastExceptions. (Die Notwendigkeit, einen einheitlichen Datentyp zu verwenden, ergibt sich daraus, dass die unterliegenden Klassen JTable und TableModel darauf ausgelegt sind, Datentypen spaltenweise, nicht zellenweise festzulegen.)
-
getData
public java.util.LinkedHashMap<java.lang.String,java.lang.Object> getData()Liefert die Daten als LinkedHashMap.- Returns:
- Gibt den gegenwärtig in der Tabelle enthaltenen Datensatz zurück.
-
hasUpdates
public boolean hasUpdates()Zeigt an, ob eine Bearbeitung mindestens einer Zelle stattgefunden hat.- Returns:
- Liefert true, wenn seit dem letzten Aufruf von clearUpdatesFlag() oder von setData() eine Bearbeitung stattgefunden hat, sonst false.
-
clearUpdatesFlag
public void clearUpdatesFlag()Löscht das Flag, das anzeigt, ob eine Bearbeitung mindestens einer Zelle stattgefunden hat. Benachrichtigt die Updates-Listener. Die Methode hasUpdates() liefert anschließend false, solange bis wieder eine Bearbeitung stattgefunden hat. -
addUpdatesListener
Fügt einen UpdatesListener hinzu.- Parameters:
listener
-
-
removeUpdatesListener
Entfernt einen UpdatesListener.- Parameters:
listener
-- Returns:
- true, wenn der UpdatesListener entfernt wurde, false, wenn er nicht registiert war.
-