MCPcopy Create free account
hub / github.com/OpenSourcePhysics/osp / DataRowTable

Class DataRowTable

src/org/opensourcephysics/display/DataRowTable.java:38–429  ·  view source on GitHub ↗

A JTable to display rows of integers, doubles and Strings. BH 2020.03.30 See note in DataRowModel.java @author Wolfgang Christian @version 1.0

Source from the content-addressed store, hash-verified

36 * @version 1.0
37 */
38@SuppressWarnings("serial")
39public class DataRowTable extends JTable implements ActionListener {
40 static final Color PANEL_BACKGROUND = javax.swing.UIManager.getColor("Panel.background"); //$NON-NLS-1$
41 static final Color LIGHT_BLUE = new Color(204, 204, 255);
42 protected int labelColumnWidth = 40;
43 DataRowModel rowModel = new DataRowModel();
44 RowNumberRenderer indexRenderer = new RowNumberRenderer();
45 CellRenderer cellRenderer = new CellRenderer();
46 String formatPattern = "0.000"; //$NON-NLS-1$
47 DecimalFormat defaultFormat = org.opensourcephysics.numerics.Util.newDecimalFormat(formatPattern);
48 int refreshDelay = 0; // time in ms to delay refresh events
49 javax.swing.Timer refreshTimer = new javax.swing.Timer(refreshDelay, this); // delay for refreshTable
50 java.util.Dictionary<Integer, DecimalFormat> formats = new java.util.Hashtable<Integer, DecimalFormat>();
51
52 /**
53 * Constructor DataRowTable
54 */
55 public DataRowTable() {
56 super();
57 init();
58 }
59
60 /**
61 * Initializes the table.
62 */
63 protected void init() {
64 refreshTimer.setRepeats(false);
65 refreshTimer.setCoalesce(true);
66 setModel(rowModel);
67 setColumnSelectionAllowed(true);
68 setGridColor(Color.blue);
69 setSelectionBackground(LIGHT_BLUE);
70 setSelectionForeground(Color.red); // foreground color for selected cells
71 setColumnModel(new DataTableColumnModel());
72 setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
73 setColumnSelectionAllowed(true);
74 rowModel.addTableModelListener(new TableModelListener() {
75 @Override
76 public void tableChanged(TableModelEvent e) {
77 //showChange(e);
78 DataRowTable.this.firePropertyChange("cell", null, e); //$NON-NLS-1$
79 }
80
81// private void showChange(TableModelEvent e) {
82// // forward the table model event to property change listeners
83// String type = "" + e.getType();
84// switch (e.getType()) {
85// case 0:
86// type = "UPDATE";
87// break;
88// case 1:
89// type = "INSERT";
90// break;
91// case -1:
92// type = "DELETE";
93// break;
94// }
95// System.out.println("DataRowTable model listener tableChanged type " + type);

Callers

nothing calls this directly

Calls 2

newDecimalFormatMethod · 0.80
getColorMethod · 0.45

Tested by

no test coverage detected