javax.swing.tree.TreeModel#addTreeModelListener ( )源码实例Demo

下面列出了javax.swing.tree.TreeModel#addTreeModelListener ( ) 实例代码,或者点击链接到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   文件: DebuggingViewComponent.java
private void createTreeView() {
    synchronized (lock) {
        releaseTreeView();
        treeView = new DebugTreeView();
        treeView.setRootVisible(false);
        treeView.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        treeView.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
        treeView.getAccessibleContext().setAccessibleName(NbBundle.getMessage(DebuggingViewComponent.class, "DebuggingViewComponent.treeView.AccessibleContext.accessibleName")); // NOI18N
        treeView.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(DebuggingViewComponent.class, "DebuggingViewComponent.treeView.AccessibleContext.accessibleDescription")); // NOI18N
        treeView.getTree().addMouseWheelListener(this);
        treeView.addTreeExpansionListener(this);
        TreeModel model = treeView.getTree().getModel();
        model.addTreeModelListener(this);
        treeView.getViewport().addChangeListener(this);
        treeView.getTree().setScrollsOnExpand(false);
        mainPanel.add(treeView, BorderLayout.CENTER);
    }
}
 
源代码3 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());
  JTree tree = new JTree() {
    @Override public void updateUI() {
      setCellRenderer(null);
      setCellEditor(null);
      super.updateUI();
      // ???#1: JDK 1.6.0 bug??? Nimbus LnF
      setCellRenderer(new CheckBoxNodeRenderer());
      setCellEditor(new CheckBoxNodeEditor());
    }
  };
  TreeModel model = tree.getModel();
  DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
  // Java 9: Collections.list(root.breadthFirstEnumeration()).stream()
  Collections.list((Enumeration<?>) root.breadthFirstEnumeration()).stream()
    .filter(DefaultMutableTreeNode.class::isInstance)
    .map(DefaultMutableTreeNode.class::cast)
    .forEach(n -> n.setUserObject(new CheckBoxNode(Objects.toString(n.getUserObject(), ""), Status.DESELECTED)));

  model.addTreeModelListener(new CheckBoxStatusUpdateListener());

  tree.setEditable(true);
  tree.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));

  tree.expandRow(0);
  // tree.setToggleClickCount(1);

  setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  add(new JScrollPane(tree));
  setPreferredSize(new Dimension(320, 240));
}
 
/**
        * Sets the specified tree model. The current cheking is cleared.
        */
   public void setTreeModel(TreeModel newModel) {
TreeModel oldModel = this.model;
if (oldModel != null) {
    oldModel.removeTreeModelListener(this.propagateCheckingListener);
}
this.model = newModel;
if (newModel != null) {
    newModel.addTreeModelListener(this.propagateCheckingListener);
}
clearChecking();
   }
 
源代码5 项目: pdfxtk   文件: Preferences.java
synchronized void apply(JTree tree) {
     expanded = new boolean[expandedPaths.length];

     expandAll(tree);
     
     TreeModel model = tree.getModel();
     if(model != null)
model.addTreeModelListener(new JTreeExpander(this, tree));
   }
 
源代码6 项目: mzmine2   文件: MainWindow.java
@Override
public void addRawDataTreeListener(TreeModelListener listener) {
  TreeModel model = getMainPanel().getRawDataTree().getModel();
  model.addTreeModelListener(listener);
}
 
源代码7 项目: mzmine2   文件: MainWindow.java
@Override
public void addPeakListTreeListener(TreeModelListener listener) {
  TreeModel model = getMainPanel().getPeakListTree().getModel();
  model.addTreeModelListener(listener);
}
 
源代码8 项目: ganttproject   文件: FacadeInvalidator.java
public FacadeInvalidator(TreeModel treeModel, List<GanttProjectBase.RowHeightAligner> rowHeightAligners) {
  isValid = false;
  treeModel.addTreeModelListener(this);
  myRowAligners = Preconditions.checkNotNull(rowHeightAligners);
}
 
源代码9 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());
  JTree tree = new JTree() {
    @Override public void updateUI() {
      setCellRenderer(null);
      setCellEditor(null);
      super.updateUI();
      // ???#1: JDK 1.6.0 bug??? Nimbus LnF
      setCellRenderer(new CheckBoxNodeRenderer());
      setCellEditor(new CheckBoxNodeEditor());
    }
  };
  TreeModel model = tree.getModel();
  DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
  // Java 9: Collections.list(root.breadthFirstEnumeration()).stream()
  Collections.list((Enumeration<?>) root.breadthFirstEnumeration()).stream()
    .filter(DefaultMutableTreeNode.class::isInstance)
    .map(DefaultMutableTreeNode.class::cast)
    .forEach(n -> n.setUserObject(new CheckBoxNode(Objects.toString(n.getUserObject(), ""), Status.DESELECTED)));

  model.addTreeModelListener(new CheckBoxStatusUpdateListener());

  tree.setEditable(true);
  tree.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));

  tree.expandRow(0);
  // tree.setToggleClickCount(1);

  JButton save = new JButton("save");
  save.addActionListener(e -> {
    try {
      File file = File.createTempFile("output", ".xml");
      String[] constructorPropertyNames = {"label", "status"};
      // try (XMLEncoder xe = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(file)))) {
      try (XMLEncoder xe = new XMLEncoder(new BufferedOutputStream(Files.newOutputStream(file.toPath())))) {
        xe.setPersistenceDelegate(CheckBoxNode.class, new DefaultPersistenceDelegate(constructorPropertyNames));
        xe.writeObject(tree.getModel());
      }
      try (Reader r = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) {
        textArea.read(r, "temp");
      }
    } catch (IOException ex) {
      ex.printStackTrace();
      textArea.setText(ex.getMessage());
    }
  });

  JButton load = new JButton("load");
  load.addActionListener(e -> {
    String text = textArea.getText();
    if (text.isEmpty()) {
      return;
    }
    // try (XMLDecoder xd = new XMLDecoder(new BufferedInputStream(new FileInputStream(new File("output.xml"))))) {
    byte[] bytes = text.getBytes(StandardCharsets.UTF_8);
    try (XMLDecoder xd = new XMLDecoder(new BufferedInputStream(new ByteArrayInputStream(bytes)))) {
      DefaultTreeModel m = (DefaultTreeModel) xd.readObject();
      m.addTreeModelListener(new CheckBoxStatusUpdateListener());
      tree.setModel(m);
    }
  });

  Box box = Box.createHorizontalBox();
  box.add(Box.createHorizontalGlue());
  box.add(save);
  box.add(Box.createHorizontalStrut(4));
  box.add(load);

  JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
  sp.setResizeWeight(.5);
  sp.setTopComponent(new JScrollPane(tree));
  sp.setBottomComponent(new JScrollPane(textArea));

  add(sp);
  add(box, BorderLayout.SOUTH);
  setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  setPreferredSize(new Dimension(320, 240));
}