diff options
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java b/Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java new file mode 100644 index 0000000..cd9c3d2 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java @@ -0,0 +1,75 @@ +/* SparseTableModel.java */
+
+import java.util.*;
+import javax.swing.*;
+import javax.swing.table.*;
+
+public class SparseTableModel
+extends AbstractTableModel
+{
+ private int size;
+ private Hashtable data;
+
+ //Konstruktor
+ public SparseTableModel(int size)
+ {
+ this.size = size;
+ this.data = new Hashtable();
+ }
+
+ //Methoden für das TableModel-Interface
+ public int getRowCount()
+ {
+ return size;
+ }
+
+ public int getColumnCount()
+ {
+ return size;
+ }
+
+ public String getColumnName(int columnIndex)
+ {
+ return "C" + columnIndex;
+ }
+
+ public Class getColumnClass(int columnIndex)
+ {
+ return String.class;
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex)
+ {
+ return rowIndex < size && columnIndex < size;
+ }
+
+ public Object getValueAt(int rowIndex, int columnIndex)
+ {
+ String key = "[" + rowIndex + "," + columnIndex + "]";
+ String value = (String)data.get(key);
+ return value == null ? "-" : value;
+ }
+
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex)
+ {
+ String key = "[" + rowIndex + "," + columnIndex + "]";
+ String value = (String)aValue;
+ if (value.length() <= 0) {
+ data.remove(key);
+ } else {
+ data.put(key, value);
+ }
+ }
+
+ //Zusätzliche Methoden
+ public void printData()
+ {
+ Enumeration e = data.keys();
+ while (e.hasMoreElements()) {
+ String key = (String)e.nextElement();
+ System.out.println(
+ "At " + key + ": " + (String)data.get(key)
+ );
+ }
+ }
+}
\ No newline at end of file |
