下面列出了javax.swing.plaf.TableUI#javax.swing.event.TableModelListener 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* notfies all listener of the change of the model
*
* @param e the event to send to the listeners
*/
public void notifyListener(TableModelEvent e) {
Iterator<TableModelListener> iter;
TableModelListener l;
// is notification enabled?
if (!isNotificationEnabled()) {
return;
}
iter = m_Listeners.iterator();
while (iter.hasNext()) {
l = iter.next();
l.tableChanged(e);
}
}
public void setTraceTableModel(TraceTableModel traceTableModel) {
this.traceTableModel = traceTableModel;
this.traceTableModel.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent tableModelEvent) {
DefaultTreeTableTree defaultTreeTableTree = getTree();
AbstractTreeTableTreeModel abstractTreeTableTreeModel;
abstractTreeTableTreeModel = (AbstractTreeTableTreeModel) defaultTreeTableTree.getModel();
// in case of search action, just refresh. reload causes
// collapsing of tree.
if (tableModelEvent instanceof SearchTableModelEvent) {
abstractTreeTableTreeModel.nodeChanged(getRoot());
} else {
if (tableModelEvent.getType() == TableModelEvent.UPDATE) {
abstractTreeTableTreeModel.reload();
}
}
}
});
}
/**
* Update the Correlation model Parameters Table.
*/
private void updateCorrelationModelParametersTable() {
// Populate the correlation model parameters table.
FunctionParameterTableModel parameterTableModel = new FunctionParameterTableModel(this.currentAutoCorrelationFunctionContext);
this.parentController.getMainPanel().getAutoCorrelationParameterAndGraphPanel().getParametersTable()
.setModel(parameterTableModel);
//setup cell editor.
TableColumn columnValue = parentController.getMainPanel().getAutoCorrelationParameterAndGraphPanel()
.getParametersTable().getColumnModel().getColumn(FunctionParameterTableModel.COLUMN_VALUE);
columnValue.setCellEditor(new TextCellEditor());
parameterTableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
updateCorrelationModelGraph();
}
});
}
/**
* Adding column is done by creating new model by modifying older one.<p>
*
* Insert new column if column is outside the <code>limit</code> Adds new
* column if selected column inside the <code>limit</code>[email protected] _table
* target table
*
* @param limit the range to avoid inserting
*/
static void addcol(JTable table, int limit) {
try {
int sc = table.getSelectedColumn();
if (sc < limit - 1) {
sc = table.getColumnCount() - 1;
}
DefaultTableModel tableM = (DefaultTableModel) table.getModel();
DefaultTableModel tableM1 = new DefaultTableModel();
TableModelListener[] listeners = tableM.getTableModelListeners();
tableM1.setDataVector(newvectoraddcol(tableM.getDataVector(), sc), getColumnIdentifiersaddcol(sc + 1, table));
table.setModel(tableM1);
for (TableModelListener l : listeners) {
tableM1.addTableModelListener(l);
}
} catch (Exception ex) {
Logger.getLogger(JtableUtils.class.getName()).log(Level.SEVERE, null, ex);
}
}
/** Fires multiple table model events, setting the inMultiEvent flag
* as appropriate. */
private void fireTableChange (TableModelEvent[] e) {
//Event may be null for offscreen info, etc.
if (e == null || e.length==0) {
return;
}
TableModelListener[] listeners = getTableModelListeners();
inMultiEvent = e.length > 1;
//System.err.println("fireTableChange("+Arrays.toString(e)+")");
try {
for (int i=0; i < e.length; i++) {
if (i == e.length-1) {
inMultiEvent = false;
}
fireTableChange (e[i], listeners);
}
} finally {
inMultiEvent = false;
}
}
@Override
protected void customizeParametersTable(TableView<CSharpParameterTableModelItem> table)
{
final JTable t = table.getComponent();
final TableColumn defaultValue = t.getColumnModel().getColumn(2);
final TableColumn varArg = t.getColumnModel().getColumn(3);
t.removeColumn(defaultValue);
t.removeColumn(varArg);
t.getModel().addTableModelListener(new TableModelListener()
{
@Override
public void tableChanged(TableModelEvent e)
{
if(e.getType() == TableModelEvent.INSERT)
{
t.getModel().removeTableModelListener(this);
final TableColumnAnimator animator = new TableColumnAnimator(t);
animator.setStep(48);
animator.addColumn(defaultValue, (t.getWidth() - 48) / 3);
animator.addColumn(varArg, 48);
animator.startAndDoWhenDone(new Runnable()
{
@Override
public void run()
{
t.editCellAt(t.getRowCount() - 1, 0);
}
});
animator.start();
}
}
});
}
/**
* Creates new form RunNetworkVisual
*/
public RunPortBindingsVisual(DockerImageDetail info) {
initComponents();
this.info = info;
addExposedButton.setEnabled(info != null && !info.getExposedPorts().isEmpty());
portMappingTable.setModel(model);
UiUtils.configureRowHeight(portMappingTable);
TableColumn typeColumn = portMappingTable.getColumnModel().getColumn(0);
JComboBox typeCombo = new JComboBox(ExposedPort.Type.values());
typeColumn.setCellEditor(new DefaultCellEditor(typeCombo));
typeColumn.setPreferredWidth(typeColumn.getPreferredWidth() / 2);
TableColumn portColumn = portMappingTable.getColumnModel().getColumn(2);
portColumn.setCellRenderer(new CellRenderer("<random>", false));
TableColumn addressColumn = portMappingTable.getColumnModel().getColumn(3);
JComboBox addressCombo = new JComboBox(UiUtils.getAddresses(false, false).toArray());
addressCombo.setEditable(true);
addressColumn.setCellEditor(new DefaultCellEditor(addressCombo));
addressColumn.setCellRenderer(new CellRenderer("<any>", false));
addressColumn.setPreferredWidth(addressColumn.getPreferredWidth() * 2);
portMappingTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
changeSupport.fireChange();
}
});
}
@Override
public void fireTableDataChanged() {
TableModelEvent event = new TableModelEvent(this);
for (TableModelListener listener : listeners) {
listener.tableChanged(event);
}
}
protected Container createStatusBar() {
statusLabelString = getString("TableDemo.rowCountLabel", "Showing ");
searchLabelString = getString("TableDemo.searchCountLabel",
"Search found ");
Box statusBar = Box.createHorizontalBox();
// Left status area
statusBar.add(Box.createRigidArea(new Dimension(10, 22)));
statusBarLeft = Box.createHorizontalBox();
statusBar.add(statusBarLeft);
actionStatus = new JLabel(getString("TableDemo.noDataStatusLabel",
"No data loaded"));
actionStatus.setHorizontalAlignment(JLabel.LEADING);
statusBarLeft.add(actionStatus);
// Middle (should stretch)
statusBar.add(Box.createHorizontalGlue());
statusBar.add(Box.createHorizontalGlue());
statusBar.add(Box.createVerticalGlue());
// Right status area
tableStatus = new JLabel(statusLabelString + "0");
statusBar.add(tableStatus);
statusBar.add(Box.createHorizontalStrut(12));
// <snip>Track number of rows currently displayed
oscarModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
// Get rowCount from *table*, not model, as the view row count
// may be different from the model row count due to filtering
tableStatus.setText((hasFilterString() ? searchLabelString
: statusLabelString) + oscarTable.getRowCount());
}
});
// </snip>
return statusBar;
}
private BarChart createBarChart() {
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(tableModel.getColumnNames()));
xAxis.setLabel("Year");
double tickUnit = tableModel.getTickUnit();
NumberAxis yAxis = new NumberAxis();
yAxis.setTickUnit(tickUnit);
yAxis.setLabel("Units Sold");
final BarChart chart = new BarChart(xAxis, yAxis, tableModel.getBarChartData());
tableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
final int row = e.getFirstRow();
final int column = e.getColumn();
final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
Platform.runLater(new Runnable() {
public void run() {
XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) chart.getData().get(row);
BarChart.Data data = s.getData().get(column);
data.setYValue(value);
}
});
}
}
});
return chart;
}
public Example_8_View() {
super();
setTitle(getClass().getSimpleName() + " " + ManagementFactory.getRuntimeMXBean().getName());
setBounds(100, 100, 700, 500);
setDefaultCloseOperation(StrictThreadingJFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout(0, 0));
final JXTable table = new JXTable(myTableModel);
table.setHighlighters(HighlighterFactory.createSimpleStriping());
table.setSortable(false);
table.getTableHeader().setReorderingAllowed(false);
myTableModel.addTableModelListener(new TableModelListener() {
int lastRowCountScrolledTo = -1;
@Override
public void tableChanged(final TableModelEvent e) {
if (TableUtilities.isInsert(e)) {
final int currentRowCount = myTableModel.getRowCount();
if (currentRowCount != lastRowCountScrolledTo) {
lastRowCountScrolledTo = currentRowCount;
SwingUtilities.invokeLater(() -> table.scrollRectToVisible(table.getCellRect(myTableModel.getRowCount() - 1, 0, false)));
}
}
}
});
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
}
private void updateCurrentSelectedForKey (final KeyEvent evt) {
final int index = this.tableKeyShortcuts.getSelectedRow();
if (index>=0){
final KeyShortcut oldShortcut = this.listOfKeys.get(index);
final int keyCode = evt.getKeyCode();
final int modifiers = evt.getModifiers() & (KeyEvent.META_MASK | KeyEvent.SHIFT_MASK | KeyEvent.CTRL_MASK | KeyEvent.ALT_MASK);
final KeyShortcut newShortCut = new KeyShortcut(oldShortcut.getID(),keyCode,modifiers);
this.listOfKeys.set(index, newShortCut);
for(final TableModelListener l:this.listeners){
l.tableChanged(new TableModelEvent(this,index));
}
}
updateForSelected();
}
private void setupTableModelListener() {
//add listener which responds to tableChanged that is fired
//by correlationTableModel.setValueAt().
this.correlationTableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
//(re)select row after setValueAt was called.
//select row of currentCorrelationContext.
int selectedRowIndex = correlationTableModel.getCurrentRow();
setSelectedRow(selectedRowIndex);
}
});
}
private void updateCurrentSelectedForKey (final KeyEvent evt) {
final int index = this.tableKeyShortcuts.getSelectedRow();
if (index>=0){
final KeyShortcut oldShortcut = this.listOfKeys.get(index);
final int keyCode = evt.getKeyCode();
final int modifiers = evt.getModifiers() & (KeyEvent.META_MASK | KeyEvent.SHIFT_MASK | KeyEvent.CTRL_MASK | KeyEvent.ALT_MASK);
final KeyShortcut newShortCut = new KeyShortcut(oldShortcut.getID(),keyCode,modifiers);
this.listOfKeys.set(index, newShortCut);
for(final TableModelListener l:this.listeners){
l.tableChanged(new TableModelEvent(this,index));
}
}
updateForSelected();
}
/**
* Creates a new {@link TablePanel} instance.
*
* @param model
* @param useScrollPane
* if set to <code>true</code>, will add a scrollpane around the GUI.
* @param hideUnavailableContentAssist
* if <code>true</code>, the content assist button will be hidden if no content
* assist is available for the given field
*/
public TablePanel(final TablePanelModel model, boolean useScrollPane, boolean hideUnavailableContentAssist) {
this.mapOfComponents = new HashMap<>();
this.useScrollPane = useScrollPane;
this.hideUnavailableContentAssist = hideUnavailableContentAssist;
this.listener = new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
// table structure changed, re-create it
if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {
createGUI();
} else {
updateComponent(e.getFirstRow(), e.getColumn());
}
}
};
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
initGUI();
setModel(model);
}
});
}
private BarChart createBarChart() {
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(tableModel.getColumnNames()));
xAxis.setLabel("Year");
double tickUnit = tableModel.getTickUnit();
NumberAxis yAxis = new NumberAxis();
yAxis.setTickUnit(tickUnit);
yAxis.setLabel("Units Sold");
final BarChart chart = new BarChart(xAxis, yAxis, tableModel.getBarChartData());
tableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
final int row = e.getFirstRow();
final int column = e.getColumn();
final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
Platform.runLater(new Runnable() {
public void run() {
XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) chart.getData().get(row);
BarChart.Data data = s.getData().get(column);
data.setYValue(value);
}
});
}
}
});
return chart;
}
private void separateStaticImportsCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_separateStaticImportsCheckBoxActionPerformed
TableModel oldModel = importLayoutTable.getModel();
TableModel newModel = (DefaultTableModel)createTableModel(importGroupsOrder, preferences);
importLayoutTable.setModel(newModel);
setImportLayoutTableColumnsWidth();
for (TableModelListener l : ((DefaultTableModel)oldModel).getTableModelListeners()) {
oldModel.removeTableModelListener(l);
newModel.addTableModelListener(l);
l.tableChanged(null);
}
}
@Override
public void hasChanged() {
SwingUtilities.invokeLater(() -> {
TableModelEvent tme = new TableModelEvent(this);
for (TableModelListener l : listeners)
l.tableChanged(tme);
});
}
@Override
public void removeTableModelListener(TableModelListener l) {
}
@Override
public void removeTableModelListener(final TableModelListener l) {
// Required for TableModel, Intentionally left blank
}
@Override
public void removeTableModelListener(TableModelListener l) {
evtListenerList.remove(l);
super.removeTableModelListener(l);
}
@Override
public void removeTableModelListener(TableModelListener l) {
// Ignore listeners: no value changes anyway
}
@Override
public void removeTableModelListener(TableModelListener l) {
listeners.remove(l);
}
@Override
public void addTableModelListener(TableModelListener listener) {
listeners.add(listener);
}
public void addTableModelListener(TableModelListener tml) {
TableModel tableModel = getModel();
if (tableModel != null) {
tableModel.addTableModelListener(tml);
}
}
@Override
public void addTableModelListener(TableModelListener l) {
}
public void removeTableModelListener(TableModelListener l) {
listenerList.remove(TableModelListener.class, l);
}
void addTableModelListener(TableModelListener tml) {
TableModel tableModel = getModel();
if (tableModel != null) {
tableModel.addTableModelListener(tml);
}
}
public void addTableModelListener(TableModelListener l) {
}
private void removeListeners() {
for(TableModelListener tnl : evtListenerList)
super.removeTableModelListener(tnl);
}