javax.swing.table.TableModel#addTableModelListener ( )源码实例Demo

下面列出了javax.swing.table.TableModel#addTableModelListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: netbeans   文件: DefaultOutlineModel.java
/** Creates a new instance of DefaultOutlineModel.  <strong><b>Note</b> 
 * Do not fire table structure changes from the wrapped TableModel (value
 * changes are okay).  Changes that affect the number of rows must come
 * from the TreeModel.
 * @param treeModel The tree model
 * @param tableModel The table model
 * @param largeModel <code>true</code> if it's a large model tree, <code>false</code> otherwise.
 * @param nodesColumnLabel Label of the node's column
 */
protected DefaultOutlineModel(TreeModel treeModel, TableModel tableModel, boolean largeModel, String nodesColumnLabel) {
    this.treeModel = treeModel;
    this.tableModel = tableModel;
    if (nodesColumnLabel != null) {
        this.nodesColumnLabel = nodesColumnLabel;
    }
    
    layout = largeModel ? (AbstractLayoutCache) new FixedHeightLayoutCache() 
        : (AbstractLayoutCache) new VariableHeightLayoutCache();
        
    broadcaster = new EventBroadcaster (this);
    
    layout.setRootVisible(true);
    layout.setModel(this);
    treePathSupport = new TreePathSupport(this, layout);
    treePathSupport.addTreeExpansionListener(broadcaster);
    treePathSupport.addTreeWillExpandListener(broadcaster);
    treeModel.addTreeModelListener(broadcaster);
    tableModel.addTableModelListener(broadcaster);
    if (tableModel instanceof ProxyTableModel) {
        ((ProxyTableModel) tableModel).setOutlineModel(this);
    }
}
 
源代码2 项目: netbeans   文件: DataViewTableUI.java
@Override
@SuppressWarnings({"unchecked"})
public void setModel(TableModel dataModel) {
    if (!(dataModel instanceof DataViewTableUIModel)) {
        throw new IllegalArgumentException("DataViewTableUI only supports"
                + " instances of DataViewTableUIModel");
    }
    if (getModel() != null) {
        getModel().removeTableModelListener(dataChangedListener); // Remove ChangeListener on replace
    }
    super.setModel(dataModel);
    dataModel.addTableModelListener(dataChangedListener); // Add new change listener
    if (dataviewUI != null) {
        dataviewUI.handleColumnUpdated();
    }
}
 
源代码3 项目: orbit-image-analysis   文件: PropertySheetTable.java
/**
 * Overriden to register a listener on the model. This listener
 * ensures editing is cancelled when editing row is being changed.
 * 
 * @see javax.swing.JTable#setModel(javax.swing.table.TableModel)
 * @throws IllegalArgumentException if dataModel is not a
 *           {@link PropertySheetTableModel}
 */
public void setModel(TableModel newModel) {
  if (!(newModel instanceof PropertySheetTableModel)) {
    throw new IllegalArgumentException("dataModel must be of type "
        + PropertySheetTableModel.class.getName());
  }

  if (cancelEditing == null) {
    cancelEditing = new CancelEditing();
  }

  TableModel oldModel = getModel();
  if (oldModel != null) {
    oldModel.removeTableModelListener(cancelEditing);
  }
  super.setModel(newModel);
  newModel.addTableModelListener(cancelEditing);

  // ensure the "value" column can not be resized
  getColumnModel().getColumn(1).setResizable(false);
}
 
源代码4 项目: netbeans   文件: SheetCell.java
@Override
public Component getTableCellEditorComponent(JTable table,
                                         Object value,
                                         boolean isSelected,
                                         int r, int c) {
   TableModel tableModel = outline.getModel();
   tableModel.addTableModelListener(this);
   return super.getTableCellEditorComponent(table, value, isSelected, r, c);
}
 
源代码5 项目: wandora   文件: TableSelectionModel.java
/**
* When the TableModel changes, the TableSelectionModel
* has to adapt to the new Model. This method is called
* if a new TableModel is set to the JTable.
*/
// implements PropertyChangeListener
public void propertyChange(PropertyChangeEvent evt) {
    if ("model".equals(evt.getPropertyName())) {
        TableModel newModel = (TableModel)(evt.getNewValue());
        setColumns(newModel.getColumnCount());
        TableModel oldModel = (TableModel)(evt.getOldValue());
        if (oldModel != null)
            oldModel.removeTableModelListener(this);
        //TableSelectionModel must be aware of changes in the TableModel
        newModel.addTableModelListener(this);
    }
}
 
源代码6 项目: consulo   文件: UserActivityWatcher.java
protected void processComponent(final Component parentComponent) {
  if (parentComponent instanceof JTextComponent) {
    ((JTextComponent)parentComponent).getDocument().addDocumentListener(myDocumentListener);
  }
  else if (parentComponent instanceof ItemSelectable) {
    ((ItemSelectable)parentComponent).addItemListener(myItemListener);
  }
  else if (parentComponent instanceof JList) {
    ((JList)parentComponent).getModel().addListDataListener(myListDataListener);
  } else if (parentComponent instanceof JTree) {
    ((JTree)parentComponent).getModel().addTreeModelListener(myTreeModelListener);
  } else if (parentComponent instanceof DocumentBasedComponent) {
    ((DocumentBasedComponent)parentComponent).getDocument().addDocumentListener(myIdeaDocumentListener);
  }

  if (parentComponent instanceof JComboBox) {
    ComboBoxEditor editor = ((JComboBox)parentComponent).getEditor();
    if (editor != null) {
      register(editor.getEditorComponent());
    }
  }

  if (parentComponent instanceof JTable) {
    JTable table = (JTable)parentComponent;
    table.addPropertyChangeListener("model", myTableListener);
    TableModel model = table.getModel();
    if (model != null) {
      model.addTableModelListener(myTableModelListener);
    }
  }

  if (parentComponent instanceof JSlider) {
    ((JSlider)parentComponent).addChangeListener(myChangeListener);
  }

  if (parentComponent instanceof UserActivityProviderComponent) {
    ((UserActivityProviderComponent)parentComponent).addChangeListener(myChangeListener);
  }
}
 
源代码7 项目: netbeans   文件: PropertyEditorPanel.java
public PropertyEditorPanel(Properties initalValue, boolean editable) {
    initComponents();
    this.value = initalValue;
    this.editable = editable;
    propertyTable.putClientProperty(
            "terminateEditOnFocusLost", Boolean.TRUE);              //NOI18N
    updateTableFromEditor();
    final TableModel tm = propertyTable.getModel();
    tm.addTableModelListener(new TableModelListener() {
        @Override
        public void tableChanged(TableModelEvent tme) {
            synchronized (PropertyEditorPanel.this) {
                if (updateing) {
                    return;
                }
                updateing = true;
                Properties p = new Properties();
                for (int i = 0; i < tm.getRowCount(); i++) {
                    p.setProperty((String) tm.getValueAt(i, 0), (String) tm.getValueAt(i, 1));
                }
                Properties oldValue = value;
                value = p;
                firePropertyChange(PROP_VALUE, oldValue, value);
                updateing = false;
            }
        }
    });
    propertyTable.getSelectionModel().addListSelectionListener(
            new ListSelectionListener() {
                @Override
                public void valueChanged(ListSelectionEvent lse) {
                    updateRemoveButtonSensible();
                }
            });
    updateAddButtonSensible();
    updateRemoveButtonSensible();
}
 
源代码8 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());

  String[] columnNames = {"String", "Number", "Boolean"};
  Object[][] data = {
    {"aaa", 1, false}, {"bbb", 20, false},
    {"ccc", 2, false}, {"ddd", 3, false},
    {"aaa", 1, false}, {"bbb", 20, false},
    {"ccc", 2, false}, {"ddd", 3, false},
  };
  TableModel model = new DefaultTableModel(data, columnNames) {
    @Override public Class<?> getColumnClass(int column) {
      return getValueAt(0, column).getClass();
    }

    @Override public boolean isCellEditable(int row, int col) {
      return col == BOOLEAN_COLUMN;
    }
  };
  JTable table = makeTable(model);
  // TEST: JTable table = makeTable2(model);
  model.addTableModelListener(e -> {
    if (e.getType() == TableModelEvent.UPDATE) {
      // System.out.println("TableModel: tableChanged");
      rowRepaint(table, table.convertRowIndexToView(e.getFirstRow()));
    }
  });
  table.setAutoCreateRowSorter(true);
  table.setFillsViewportHeight(true);
  table.setShowGrid(false);
  table.setIntercellSpacing(new Dimension());
  table.setRowSelectionAllowed(true);
  // table.setSurrendersFocusOnKeystroke(true);
  // table.putClientProperty("JTable.autoStartsEdit", false);
  add(new JScrollPane(table));
  setPreferredSize(new Dimension(320, 240));
}
 
源代码9 项目: rapidminer-studio   文件: ExtendedJTable.java
@Override
public void setModel(final TableModel model) {
	boolean shouldSort = this.sortable && checkIfSortable(model);

	if (shouldSort) {
		this.tableSorter = new ExtendedJTableSorterModel(model);
		this.tableSorter.setTableHeader(getTableHeader());
		super.setModel(this.tableSorter);
	} else {
		super.setModel(model);
		this.tableSorter = null;
	}

	originalOrder = new String[model.getColumnCount()];
	for (int c = 0; c < model.getColumnCount(); c++) {
		originalOrder[c] = model.getColumnName(c);
	}

	// initializing arrays for cell renderer settings
	cutOnLineBreaks = new boolean[model.getColumnCount()];
	maximalTextLengths = new int[model.getColumnCount()];
	Arrays.fill(maximalTextLengths, Integer.MAX_VALUE);

	model.addTableModelListener(new TableModelListener() {

		@Override
		public void tableChanged(final TableModelEvent e) {
			int oldLength = cutOnLineBreaks.length;
			if (oldLength != model.getColumnCount()) {
				cutOnLineBreaks = Arrays.copyOf(cutOnLineBreaks, model.getColumnCount());
				maximalTextLengths = Arrays.copyOf(maximalTextLengths, model.getColumnCount());
				if (oldLength < cutOnLineBreaks.length) {
					Arrays.fill(cutOnLineBreaks, oldLength, cutOnLineBreaks.length, false);
					Arrays.fill(maximalTextLengths, oldLength, cutOnLineBreaks.length, Integer.MAX_VALUE);
				}
			}
		}
	});
}
 
源代码10 项目: azure-devops-intellij   文件: FormattedTable.java
@Override
public void setModel(final TableModel model) {
    super.setModel(model);

    // format if in the correct state
    if (shouldFormat()) {
        formatTable();
    }

    // add listener to format the table once the table contains data
    if (!isFormatted) {
        // if table is not formatted then add a listener so that the table can be formatted once data is in it
        model.addTableModelListener(formattedListener);
    }
}
 
源代码11 项目: consulo   文件: UserActivityWatcher.java
public void propertyChange(PropertyChangeEvent evt) {
  TableModel oldModel = (TableModel)evt.getOldValue();
  if (oldModel != null) {
    oldModel.removeTableModelListener(myTableModelListener);
  }

  TableModel newModel = (TableModel)evt.getNewValue();
  if (newModel != null) {
    newModel.addTableModelListener(myTableModelListener);
  }

  if (oldModel != null) {
    fireUIChanged();
  }
}
 
源代码12 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());
  JEditorPane editor = new JEditorPane("text/html", PLACEHOLDER);
  editor.setOpaque(false);
  editor.setEditable(false);
  editor.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
  editor.addHyperlinkListener(e -> {
    if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
      UIManager.getLookAndFeel().provideErrorFeedback((Component) e.getSource());
    }
  });

  String[] columnNames = {"Integer", "String", "Boolean"};
  TableModel model = new DefaultTableModel(null, columnNames) {
    @Override public Class<?> getColumnClass(int column) {
      switch (column) {
        case 0: return Integer.class;
        case 2: return Boolean.class;
        default: return String.class;
      }
    }
  };
  model.addTableModelListener(e -> {
    DefaultTableModel m = (DefaultTableModel) e.getSource();
    editor.setVisible(m.getRowCount() == 0);
  });
  JTable table = new JTable(model);
  table.setAutoCreateRowSorter(true);
  table.setFillsViewportHeight(true);
  table.setComponentPopupMenu(new TablePopupMenu());
  table.setLayout(new GridBagLayout());
  table.add(editor);
  add(new JScrollPane(table));
  setPreferredSize(new Dimension(320, 240));
}
 
源代码13 项目: pcgen   文件: JTableEx.java
@Override
public void setModel(TableModel dataModel)
{
	Objects.requireNonNull(dataModel, "Cannot set a null TableModel");
	if (this.dataModel != dataModel)
	{
		TableModel old = this.dataModel;
		if (old != null)
		{
			old.removeTableModelListener(this);
		}
		this.dataModel = dataModel;
		dataModel.addTableModelListener(this);

		tableChanged(new TableModelEvent(dataModel, TableModelEvent.HEADER_ROW));

		firePropertyChange("model", old, dataModel);

		if (getAutoCreateRowSorter())
		{
			if (dataModel instanceof SortableTableModel)
			{
				super.setRowSorter(new SortableTableRowSorter((SortableTableModel) dataModel));
			}
			else
			{
				super.setRowSorter(new TableRowSorter<>(dataModel));
			}
		}
	}
}
 
源代码14 项目: consulo   文件: TableMap.java
public void setModel(TableModel model) {
    this.model = model; 
    model.addTableModelListener(this); 
}
 
源代码15 项目: netbeans   文件: DisplayTable.java
public void addTableModelListener(TableModelListener tml) {
TableModel tableModel = getModel();
if (tableModel != null) {
    tableModel.addTableModelListener(tml);
}
   }
 
源代码16 项目: knopflerfish.org   文件: TableMap.java
public void setModel(TableModel model) {
    this.model = model; 
    model.addTableModelListener(this); 
}
 
源代码17 项目: yawl   文件: TableMap.java
public void setModel(TableModel model) {
    this.model = model;
    model.addTableModelListener(this);
}
 
源代码18 项目: charliebot   文件: TableMap.java
public synchronized void setModel(TableModel tablemodel) {
    model = tablemodel;
    tablemodel.addTableModelListener(this);
}
 
源代码19 项目: jAudioGIT   文件: SortingTableModelDecorator.java
/**
 * Creates a new model that decorates the underlying model with sorting
 * capabilities
 * 
 * @param base
 *            Underlying model this model is built on top of.
 */
public SortingTableModelDecorator(TableModel base) {
	this.base = base;
	base.addTableModelListener(this);
	resetIndeci();
}
 
源代码20 项目: CodenameOne   文件: TableHelper.java
public static PropertyChangeListener addModelTracker(JTable p_Table,
      final TableModelListener p_Listener) {
    PropertyChangeListener propListener = new PropertyChangeListener() {
      public void propertyChange(PropertyChangeEvent event) {
        TableModel oldModel = (TableModel) event.getOldValue();
        TableModel newModel = (TableModel) event.getNewValue();
        if (oldModel != null)
          oldModel.removeTableModelListener(p_Listener);
        if (newModel != null)
          newModel.addTableModelListener(p_Listener);
      }
    };
    p_Table.addPropertyChangeListener("model", propListener);
    p_Table.getModel().addTableModelListener(p_Listener);
    return propListener;
  }