java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTree
所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable
public class JTreeextends JComponentimplements Scrollable, Accessible将分层数据集显示为轮廓的控件。有关面向任务的文档和使用树的示例,请参阅《The Java Tutorial》中的 How to Use Trees 一节。
树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识。展开 节点是一个非叶节点(由返回 false 的 TreeModel.isLeaf(node) 标识),当展开 其所有祖先时,该节点将显示其子节点。折叠 节点是隐藏它们的节点。隐藏 节点是位于折叠祖先下面的节点。所有可查看 节点的父节点都是可以展开的,但是可以显示它们,也可以不显示它们。显示 节点是可查看的并且位于可以看到它的显示区域。
以下 JTree 方法使用 "visible" 来表示 "displayed":
isRootVisible()
setRootVisible()
scrollPathToVisible()
scrollRowToVisible()
getVisibleRowCount()
setVisibleRowCount()
下一组 JTree 方法使用 "visible" 表示 "viewable"(在展开的父节点下面):
isVisible()
makeVisible()
如果您有兴趣了解选择何时更改,请实现 TreeSelectionListener 接口,并使用方法 addTreeSelectionListener 添加实例。当选择更改时,将调用 valueChanged,即如果用户在同一节点上单击两次,则仅调用 valueChanged 一次。
如果有兴趣检测双击事件或用户何时单击节点(不管是否选中它),建议您执行以下操作:
final JTree tree = ...;
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
};
tree.addMouseListener(ml);
注:上述示例同时获取路径和行,但是您只需要获取感兴趣的内容。
分享到:
相关推荐
javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 ...
- `javax.swing.tree`:与`JTree`组件相关的类,用于展示和操作树形数据结构。 - `javax.swing.undo`:提供了撤销/重做功能的支持,常用于文本编辑组件。 Swing的版面结构是构建GUI布局的关键。它允许开发者通过...
首先,我们需要导入必要的Java Swing库,包括`javax.swing.JTree`、`javax.swing.tree.DefaultTreeModel`、`javax.swing.tree.DefaultMutableTreeNode`等。`DefaultMutableTreeNode`用于构建树结构,`...
javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 ...
3. **图标处理**:`IconNode`可能使用了`javax.swing.ImageIcon`类来加载和显示图标。在Java中,图标可以通过URL、文件路径或者资源流等方式加载,然后通过设置节点的属性来显示。 4. **数据绑定**:在自定义节点类...
`DefaultMutableTreeNode`是`javax.swing.tree`包下的一个类,它实现了`MutableTreeNode`接口,允许节点的动态修改。接下来,你可以使用`DefaultTreeModel`来管理这些节点,它是`TreeModel`接口的一个实现,负责维护...
import javax.swing.JTree; import javax.swing.SwingUtilities; import javax.swing.UIManager; public class TreeTest { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable()...
8. `javax.swing.JComponent` - Swing组件的基础类,提供了事件处理和布局管理等功能。 ### Swing包和组件支持 Swing库由多个包组成,每个包都专注于特定的功能: 1. `javax.swing` - 包含核心的Swing组件,如...
- **JTree**: Swing提供的树组件类,用于创建和管理树状结构的数据视图。 #### 三、关键代码解析 ##### 1. 导入必要的包 ```java import java.awt.BorderLayout; import java.awt.event.MouseAdapter; import ...
* javax.swing.tree:提供了JTree组件的支持类 五、容器类 容器类是Swing中提供用来创建表示图形用户界面的类,包括窗口(JFrame)、面板(JPanel)和对话框(JDialog)。这些类的对象将被当作容器使用,所有的...
import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; public class JTreeExample { public static void main(String[] args) { ...
import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; public class JTreeExample { public static void main(String[] args) { JFrame frame...
9. `javax.swing.tree`:提供了`JTree`组件,用于显示层次结构的数据。 10. `javax.swing.undo`:提供了撤销/重做功能的实现,使得用户操作可以被追踪和撤销。 值得注意的是,Swing组件与AWT组件在命名上有所区分...
- 这是最基础也是最常用的包,包含了构建Swing GUI所需的大部分组件类,如按钮、标签、文本框等。 2. **`javax.swing.border`**: - 此包包含了一系列与Swing组件边框样式相关的类,可以用来自定义组件的外观边界...
- `javax.swing.tree`: 提供树状组件`JTree`。 - `javax.swing.undo`: 实现文字组件的撤销/重做功能。 9.1.3 常用组件的继承关系 Swing组件的继承层次结构始于`java.lang.Object`,然后是`java.awt.Component`,...
4. javax.swing.tree:包含了与JTree组件相关的类和接口,如DefaultMutableTreeNode、TreeModel等,用于显示和操作树形数据结构。 5. javax.swing.table:提供了与JTable组件相关的类和接口,如DefaultTableModel、...
javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 ...
其他包如`javax.swing.border`处理组件边框,`javax.swing.filechooser`涉及文件选择对话框,`javax.swing.table`专注于表格组件`JTable`,`javax.swing.tree`则涉及树状组件`JTree`。此外,`javax.swing.event`包...
javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 ...
javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 ...