Java by API/javax.swing.tree/TreeSelectionModel
Содержание
TreeSelectionModel: addTreeSelectionListener(TreeSelectionListener x)
<source lang="java">
import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; import javax.swing.tree.TreeSelectionModel; public class Main extends JFrame {
public Main() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DefaultMutableTreeNode root = new DefaultMutableTreeNode("abcde"); DefaultMutableTreeNode node = new DefaultMutableTreeNode("1"); node.add(new DefaultMutableTreeNode("12345")); node.add(new DefaultMutableTreeNode("testing")); root.add(node); root.add(new DefaultMutableTreeNode("1234567890")); TreeModel tm = new DefaultTreeModel(root); JTree tree = new JTree(tm); tree.getSelectionModel().addTreeSelectionListener(new Selector()); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); getContentPane().add(tree, BorderLayout.CENTER); pack(); setVisible(true); } private class Selector implements TreeSelectionListener { public void valueChanged(TreeSelectionEvent event) { Object obj = event.getNewLeadSelectionPath().getLastPathComponent(); System.out.println("" + obj.toString().length()); } } public static void main(String[] args) { Main m = new Main(); }
}
</source>
TreeSelectionModel.CONTIGUOUS_TREE_SELECTION
<source lang="java">
import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.TreeSelectionModel; public class Main {
public static void main(String[] argv) { JTree tree = new JTree(); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(tree)); frame.setSize(380, 320); frame.setLocationRelativeTo(null); frame.setVisible(true); }
}
</source>
TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION
<source lang="java">
import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.TreeSelectionModel; public class Main {
public static void main(String[] argv) { JTree tree = new JTree(); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(tree)); frame.setSize(380, 320); frame.setLocationRelativeTo(null); frame.setVisible(true); }
}
</source>
TreeSelectionModel: setSelectionMode(int mode)
<source lang="java">
import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; import javax.swing.tree.TreeSelectionModel; public class Main extends JFrame {
public Main() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DefaultMutableTreeNode root = new DefaultMutableTreeNode("abcde"); DefaultMutableTreeNode node = new DefaultMutableTreeNode("1"); node.add(new DefaultMutableTreeNode("12345")); node.add(new DefaultMutableTreeNode("testing")); root.add(node); root.add(new DefaultMutableTreeNode("1234567890")); TreeModel tm = new DefaultTreeModel(root); JTree tree = new JTree(tm); tree.getSelectionModel().addTreeSelectionListener(new Selector()); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); getContentPane().add(tree, BorderLayout.CENTER); pack(); setVisible(true); } private class Selector implements TreeSelectionListener { public void valueChanged(TreeSelectionEvent event) { Object obj = event.getNewLeadSelectionPath().getLastPathComponent(); System.out.println("" + obj.toString().length()); } } public static void main(String[] args) { Main m = new Main(); }
}
</source>
TreeSelectionModel.SINGLE_TREE_SELECTION
<source lang="java">
import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.TreeSelectionModel; public class Main {
public static void main(String[] argv) { JTree tree = new JTree(); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(tree)); frame.setSize(380, 320); frame.setLocationRelativeTo(null); frame.setVisible(true); }
}
</source>