下面列出了怎么用javax.swing.table.AbstractTableModel的API类实例代码及写法,或者点击链接到github查看源代码。
public void editCell() throws Throwable {
final JTable table = (JTable) ComponentUtils.findComponent(JTable.class, frame);
final LoggingRecorder lr = new LoggingRecorder();
siw(new Runnable() {
@Override
public void run() {
table.addRowSelectionInterval(2, 2);
table.addColumnSelectionInterval(2, 2);
RTable rTable = new RTable(table, null, null, lr);
rTable.focusGained(null);
AbstractTableModel model = (AbstractTableModel) table.getModel();
model.setValueAt("Rowing", 2, 2);
rTable.focusLost(null);
}
});
List<Call> calls = lr.getCalls();
Call call = calls.get(1);
AssertJUnit.assertEquals("select", call.getFunction());
AssertJUnit.assertEquals("rows:[2],columns:[Sport]", call.getState());
call = calls.get(0);
AssertJUnit.assertEquals("select", call.getFunction());
AssertJUnit.assertEquals("Rowing", call.getState());
AssertJUnit.assertEquals("{2, Sport}", call.getCellinfo());
}
public void tableChanged(TableModelEvent e) {
//System.out.println("TBALE changed");
//boolean prefixFlag = false;
int row = e.getFirstRow();
int column = e.getColumn();
AbstractTableModel tblModel = (AbstractTableModel) e.getSource();
Object data = tblModel.getValueAt(row, column);
if(column == SCHEMA_COL) {
SchemaObject rowValue = (SchemaObject)data;
if(rowValue.toString().equals(startString))
return;
String genPrefix = (String) tblModel.getValueAt(row, PREFIX_COL);
if (genPrefix == null || genPrefix.equals(" ") ) {
String prefix = generateUniquePrefix();
tableModel.setValueAt(prefix, row, PREFIX_COL);
}
if(row == tableModel.getRowCount() - 1) {
addRow(startString);
}
//if its the first row, then select it as primary
if(row == 0) {
// System.out.println("added first row");
tblModel.setValueAt(new Boolean(true), 0, 0);
}
}
}
@Override
protected void createInnerComponent() {
super.createInnerComponent();
((AbstractTableModel) component.getTable().getModel())
.fireTableStructureChanged();
component.getTable().setLeafIcon(
new ImageIcon(getClass().getResource(
"/com/ramussoft/gui/table/qualifier.png")));
getComponent().getRowSet().addRowChildListener(new RowChildAdapter() {
@Override
public void added(Row parent, Row row, int index) {
if (parent.getParent() == null)
return;
framework.propertyChanged(
"CloseQualifier",
StandardAttributesPlugin.getQualifierId(engine,
parent.getElementId()));
}
});
}
/**
* Creates an excel table model (either {@link ExcelSheetTableModel} or
* {@link XlsxSheetTableModel}, depending on file).
*
* @param sheetSelection
* the Sheet Selection method
* @param readMode
* the read mode for {@link XlsxSheetTableModel} creation. It defines whether only a
* preview or the whole sheet content will be loaded
* @param progressListener
* the progress listener to report progress to
* @return
* @throws BiffException
* @throws IOException
* @throws InvalidFormatException
*/
public AbstractTableModel createExcelTableModel(ExcelSheetSelection sheetSelection, XlsxReadMode readMode, ProgressListener progressListener)
throws BiffException, IOException, InvalidFormatException, OperatorException, ParseException {
if (getFile().getAbsolutePath().toLowerCase(Locale.ENGLISH).endsWith(XLSX_FILE_ENDING)) {
// excel 2007 file
return new XlsxSheetTableModel(this, sheetSelection, readMode, getFile().getAbsolutePath(), progressListener);
} else {
// excel pre 2007 file
progressListener.setCompleted(50);
try {
return new ExcelSheetTableModel(sheetSelection.selectSheetFrom(getOrCreateWorkbookJXL()));
} catch (ExcelSheetSelection.SheetNotFoundException e) {
throw new IOException(e);
}
}
}
protected void initTaxonSetsTable(AbstractTableModel tableModel, final String[] columnToolTips) {
taxonSetsTable = new JTable(tableModel) {
//Implement table header tool tips.
protected JTableHeader createDefaultTableHeader() {
return new JTableHeader(columnModel) {
public String getToolTipText(MouseEvent e) {
Point p = e.getPoint();
int index = columnModel.getColumnIndexAtX(p.x);
int realIndex = columnModel.getColumn(index).getModelIndex();
return columnToolTips[realIndex];
}
};
}
};
taxonSetsTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
taxonSetsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent evt) {
taxonSetsTableSelectionChanged();
}
});
taxonSetsTable.doLayout();
}
@SuppressWarnings("unchecked")
private void locationsComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_locationsComboBoxItemStateChanged
operationTypesComboBox.removeAllItems();
if (locationsComboBox.getSelectedItem() == null) {
return;
}
TCSObjectReference<Location> loc
= (TCSObjectReference<Location>) locationsComboBox.getSelectedItem();
Location location = objectService.fetchObject(Location.class, loc);
TCSObjectReference<LocationType> locationRef = location.getType();
LocationType locationType = objectService.fetchObject(LocationType.class, locationRef);
Set<String> operationTypes = new TreeSet<>(locationType.getAllowedOperations());
for (String j : operationTypes) {
operationTypesComboBox.addItem(j);
}
// When selecting an item in the locationsComboBox we have
// to update the vehicle operation in the DriveOrderTable manually,
// otherwise the old value will persist and that could be a value
// the new location doesn't support
int selectedRow = doTable.getSelectedRow();
if (selectedRow >= 0) {
DriveOrderTableModel model = (DriveOrderTableModel) doTable.getModel();
DriveOrderStructure dos = model.getDataAt(selectedRow);
if (dos != null) {
if (!operationTypes.isEmpty()) {
dos.setDriveOrderVehicleOperation(operationTypes.iterator().next());
}
else {
dos.setDriveOrderVehicleOperation(null);
}
}
((AbstractTableModel) doTable.getModel()).fireTableDataChanged();
}
}
@Override
public void startup() {
this.setLayout(new BorderLayout());
AbstractTableModel model = getModel();
table = getTable();
table.setModel(model);
table.getColumnModel().getColumn(0).setPreferredWidth(50);
table.getColumnModel().getColumn(1).setPreferredWidth(500);
scroll = new JScrollPane(table, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
this.add(scroll, BorderLayout.CENTER);
}
/**
* Test that table can be sorted just after a column has been removed. See
* bug 239045.
*/
public void testRemoveSortedColumn() {
ETable t = new ETable();
final int[] size = new int[]{10, 4};
TableModel tm = new AbstractTableModel() {
@Override
public int getRowCount() {
return size[0];
}
@Override
public int getColumnCount() {
return size[1];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (rowIndex < size[0] && columnIndex < size[1]) {
return rowIndex;
} else {
throw new IndexOutOfBoundsException();
}
}
};
t.setModel(tm);
ETableColumnModel etcm = (ETableColumnModel) t.getColumnModel();
ETableColumn etc = (ETableColumn) etcm.getColumn(3);
etcm.toggleSortedColumn(etc, true);
size[1] = 3;
t.sortAndFilter();
}
/**
* Creates a new InnerTablePanel.
*
* @param model DefaultTableModel for included table
*/
public TablePanel(final AbstractTableModel model) {
super(model);
final JTable table = getTable();
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int selectedRowCount = table.getSelectedRowCount();
removeButton.setEnabled(selectedRowCount > 0);
editButton.setEnabled(selectedRowCount == 1);
}
});
}
/**
* Creates a new InnerTablePanel.
*
* @param model DefaultTableModel for included table
*/
public TablePanel(final AbstractTableModel model) {
super(model);
final JTable table = getTable();
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int selectedRowCount = table.getSelectedRowCount();
removeButton.setEnabled(selectedRowCount > 0);
editButton.setEnabled(selectedRowCount == 1);
}
});
}
private static void checkTableGridLines() {
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() {
return 10;
}
public int getRowCount() {
return 10;
}
public Object getValueAt(int row, int col) {
return " ";
}
};
DefaultTableCellRenderer r = new DefaultTableCellRenderer();
r.setOpaque(true);
r.setBackground(CELL_RENDERER_BACKGROUND_COLOR);
JTable table = new JTable(dataModel);
table.setSize(WIDTH, HEIGHT);
table.setDefaultRenderer(Object.class, r);
table.setGridColor(GRID_COLOR);
table.setShowGrid(true);
table.setShowHorizontalLines(true);
table.setShowVerticalLines(true);
table.setBackground(TABLE_BACKGROUND_COLOR);
checkTableGridLines(table);
}
public ColUndoableEdit(AbstractTableModel model, UndoRedoProgress progress,
String colName, int colIndex, Boolean added) {
super(model, progress);
this.colName = colName;
this.colIndex = colIndex;
this.added = added;
this.values = new Object[model.getRowCount()];
loadValuesFromModel();
}
public ColUndoableEdit(AbstractTableModel model, UndoRedoProgress progress,
int colIndex, Boolean added) {
super(model, progress);
this.colName = getModel().getColumnName(colIndex);
this.colIndex = colIndex;
this.added = added;
this.values = new Object[model.getRowCount()];
loadValuesFromModel();
}
public ColUndoableEdit(AbstractTableModel model, UndoRedoProgress progress,
String colName, Boolean added) {
super(model, progress);
this.colName = colName;
this.colIndex = getModel().findColumn(colName);
this.added = added;
this.values = new Object[model.getRowCount()];
loadValuesFromModel();
}
public RowUndoableEdit(AbstractTableModel model, UndoRedoProgress progress,
int row, Boolean added) {
super(model, progress);
this.row = row;
this.values = new Object[getModel().getColumnCount()];
for (int i = 0; i < values.length; i++) {
values[i] = getModel().getValueAt(row, i);
}
this.added = added;
}
public RowUndoableEdit(AbstractTableModel model, UndoRedoProgress progress,
int row, Object[] values, Boolean added) {
super(model, progress);
this.row = row;
this.values = values;
this.added = added;
}
public CellUndoableEdit(AbstractTableModel model, UndoRedoProgress progress,
int row, int column, Object oldValue, Object newValue) {
super(model, progress);
this.row = row;
this.column = column;
this.oldValue = oldValue;
this.newValue = newValue;
}
private static void checkTableGridLines() {
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() {
return 10;
}
public int getRowCount() {
return 10;
}
public Object getValueAt(int row, int col) {
return " ";
}
};
DefaultTableCellRenderer r = new DefaultTableCellRenderer();
r.setOpaque(true);
r.setBackground(CELL_RENDERER_BACKGROUND_COLOR);
JTable table = new JTable(dataModel);
table.setSize(WIDTH, HEIGHT);
table.setDefaultRenderer(Object.class, r);
table.setGridColor(GRID_COLOR);
table.setShowGrid(true);
table.setShowHorizontalLines(true);
table.setShowVerticalLines(true);
table.setBackground(TABLE_BACKGROUND_COLOR);
checkTableGridLines(table);
}
public void update() {
((AbstractTableModel) getModel()).fireTableStructureChanged();
TableColumnModel columnModel = getColumnModel();
for (int i = 0; i < columnModel.getColumnCount(); i++) {
TableColumn tableColumn = columnModel.getColumn(i);
tableColumn.setPreferredWidth(120);
}
}
public void update() {
((AbstractTableModel) getModel()).fireTableStructureChanged();
TableColumnModel columnModel = getColumnModel();
for (int i = 0; i < columnModel.getColumnCount(); i++) {
TableColumn tableColumn = columnModel.getColumn(i);
tableColumn.setPreferredWidth(120);
}
}
public void update() {
((AbstractTableModel) getModel()).fireTableStructureChanged();
TableColumnModel columnModel = getColumnModel();
for (int i = 0; i < columnModel.getColumnCount(); i++) {
TableColumn tableColumn = columnModel.getColumn(i);
tableColumn.setPreferredWidth(120);
}
}
protected void addTables(AbstractTableModel radTableModel, AbstractTableModel radPacketTableModel) {
super.addTables(radTableModel, radPacketTableModel);
TableColumn column = null;
column = table.getColumnModel().getColumn(0);
column.setPreferredWidth(45);
column = table.getColumnModel().getColumn(1);
column.setPreferredWidth(55);
for (int i=0; i<58; i++) {
column = table.getColumnModel().getColumn(i+2);
column.setPreferredWidth(25);
}
column = packetTable.getColumnModel().getColumn(0);
column.setPreferredWidth(45);
column = packetTable.getColumnModel().getColumn(1);
column.setPreferredWidth(55);
column = packetTable.getColumnModel().getColumn(2);
column.setPreferredWidth(80);
column = packetTable.getColumnModel().getColumn(3);
column.setPreferredWidth(70);
column = packetTable.getColumnModel().getColumn(4);
column.setPreferredWidth(600);
}
protected void addTables(AbstractTableModel radTableModel, AbstractTableModel radPacketTableModel) {
super.addTables(radTableModel, radPacketTableModel);
TableColumn column = null;
column = table.getColumnModel().getColumn(0);
column.setPreferredWidth(45);
column = table.getColumnModel().getColumn(1);
column.setPreferredWidth(55);
for (int i=0; i<58; i++) {
column = table.getColumnModel().getColumn(i+2);
column.setPreferredWidth(25);
}
column = packetTable.getColumnModel().getColumn(0);
column.setPreferredWidth(45);
column = packetTable.getColumnModel().getColumn(1);
column.setPreferredWidth(55);
column = packetTable.getColumnModel().getColumn(2);
column.setPreferredWidth(80);
column = packetTable.getColumnModel().getColumn(3);
column.setPreferredWidth(70);
column = packetTable.getColumnModel().getColumn(4);
column.setPreferredWidth(600);
//packetTable.getSelectionModel().addListSelectionListener(this);
//table.getSelectionModel().addListSelectionListener(this);
//packetTable.getRowSelectionAllowed();
}
private void initDeck() {
model = new AbstractTableModel() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public String getColumnName(int t) {
if (t == 0)
return "Card";
else
return "Turn " + t;
}
@Override
public Object getValueAt(int r, int c) {
if (c == 0) {
return d.getUniqueCards().get(r);
} else {
return UITools.roundDouble(calc.getProbability(d,c - 1, d.getUniqueCards().get(r)));
}
}
@Override
public int getRowCount() {
return d.getMain().keySet().size();
}
@Override
public int getColumnCount() {
return maxTurn + 1;
}
};
table.setModel(model);
model.fireTableDataChanged();
table.packAll();
}
public AbstractTableModelAsAbstractColumnTableModelWrapper(
AbstractTableModel abstractTableModel, List<Column<T>> columns) {
super();
this.abstractTableModel = abstractTableModel;
this.columns = new ArrayList<>(columns);
this.models = new ArrayList<>();
}
@Override
public void optionsChanged() {
myTreeView.getTreeTable().setRowHeight(myChartModel.calculateRowHeight());
AbstractTableModel model = (AbstractTableModel) myTreeView.getTreeTable().getModel();
model.fireTableStructureChanged();
myTreeView.updateUI();
}
@Override
public void actionPerformed(AnActionEvent e) {
final Generator o = editItem(myType.create());
if (o == null) return;
getData().add(o);
int index = getData().size() - 1;
((AbstractTableModel)getTable().getModel()).fireTableRowsInserted(index, index);
getTable().setRowSelectionInterval(index, index);
}
public InspectionsConfigTreeTableModel(final InspectionsConfigTreeTableSettings settings, Disposable parentDisposable) {
super(settings.getRoot());
mySettings = settings;
myUpdateRunnable = new Runnable() {
public void run() {
settings.updateRightPanel();
((AbstractTableModel)myTreeTable.getModel()).fireTableDataChanged();
}
};
myUpdateAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD, parentDisposable);
}
public TableAvailableFilters(final TableChosenFilters tcf) {
setModel(new AbstractTableModel() {
@Override
public Object getValueAt(final int rowIndex, final int columnIndex) {
return available[rowIndex].getSimpleName();
}
@Override
public int getRowCount() {
return available.length;
}
@Override
public int getColumnCount() {
return 1;
}
@Override
public String getColumnName(final int col) {
return "Available Filters";
}
});
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(final MouseEvent me) {
if (2 == me.getClickCount()) {
tcf.add(available[getSelectedRow()]);
}
}
});
}
/**
* Update the table.
*/
private void updateTableGUI() {
((AbstractTableModel) table.getModel()).fireTableDataChanged();
// MZmineCore.getProjectManager().getCurrentProject().notifyObjectChanged(peakList, true);
}