summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java
downloadStudium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz
Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java')
-rw-r--r--Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java75
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