From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/examples/SparseTableModel.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/SparseTableModel.java') 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 -- cgit v1.2.3