13.02.07 Tabellen
package de.jbb.jtable; import java.awt.Point; import java.util.ArrayList; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; public class PointTableModel implements TableModel{ private ArrayList<TableModelListener> listeners; private ArrayList<Point> points; public PointTableModel(){ listeners = new ArrayList<TableModelListener>(); points = new ArrayList<Point>(); } @Override public int getRowCount() { return points.size(); } @Override public int getColumnCount() { return 2; } @Override public String getColumnName(int columnIndex) { if(columnIndex == 0){ return "X-Wert"; }else{ return "Y-Wert"; } } @Override public Class<?> getColumnClass(int columnIndex) { return Integer.class; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Object getValueAt(int rowIndex, int columnIndex) { if(columnIndex==0){ return points.get(rowIndex).getX(); }else{ return points.get(rowIndex).getY(); } } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { if(rowIndex<points.size()){ points.add(new Point()); } if(columnIndex == 0){ points.get(rowIndex).x = (Integer)aValue; }else{ points.get(rowIndex).y = (Integer)aValue; } performListeners(); } @Override public void addTableModelListener(TableModelListener l) { listeners.add(l); } @Override public void removeTableModelListener(TableModelListener l) { listeners.remove(l); } public void addPoint(Point p){ setValueAt(p.x, points.size()+1, 0); setValueAt(p.y, points.size()+1, 1); } private void performListeners(){ for(TableModelListener listener: listeners){ listener.tableChanged(new TableModelEvent(this)); } } }
Dieses Model können Sie nun mit jTable.setModel(new PointTableModel())
der JTable bekannt machen.
In diesem Kapitel haben Sie einiges zum Thema Tabellen in Java gelernt und unter anderem auch die Trennung von Daten und Grafik mal live mitbekommen.
Wenn Sie mehr über JTable und deren Einsatz lernen möchten, besuchen Sie doch unser Wiki. Dort steht ein sehr ausführlicher Artikel für Sie bereit: JTable (Tutorial)©
Pages: 1 2