【问题标题】:java swing : display file system in jtree, and how to open the filejava swing : 在 jtree 中显示文件系统,以及如何打开文件
【发布时间】:2011-06-28 02:06:46
【问题描述】:

我正在使用jsplit窗格,在左侧组件中,有显示主目录文件夹和文件的树视图。当我单击树的叶节点时,如果它不是目录,则文件(图像、pdf、文本、视频等)应在 jsplit 窗格的右侧组件中打开。

当我们在左窗格中选择 jtree 中的文件时,如何显示 jsplit 窗格的文件右组件。

请提供代码sn-ps 急用。 谢谢

【问题讨论】:

  • "当我们在左窗格中选择 jtree 中的文件时,如何显示 jsplit 窗格的文件右组件。"这个问题相当于“我如何加载曾经创建的每种文档类型(包括那些尚未想到的)?”。哦,如果你有一个问题,无论多远,请不要忘记加上一个问号。
  • 您想显示文件的内容或代表文件的图标,就像在 Windows 资源管理器中一样?

标签: java swing


【解决方案1】:

【讨论】:

  • yes link 你已经在 jtree 中显示了文件系统。在我的应用程序中,我留下了显示 jtree 的组件。
  • 当我们从 jtree 中选择文件(非叶节点)时,文件(任何类型,即 txt、pdf、jpeg 等)应该在 jsplitpane 的右侧组件中打开。
  • 对于您可能拥有的各种文件,没有一个通用代码。您应该向树中添加一个侦听器。如果选择了文件,您的代码应检查文件格式并打开适当的组件以显示文件,例如用于 .txt 文件的 JTextArea 或用于 .jpeg 或 .gif 等的带有 ImageIcon 的 JLabel。
【解决方案2】:

这不可能。无法在右侧“显示”文件。但是,您可以显示有关文件的一些信息和/或定义可以显示的某些格式(图像、文本等)

【讨论】:

    【解决方案3】:

    首先,创建 JTree。对于下一步,您需要覆盖valueChanged 方法,如下所示。请注意,您的类需要实现 TreeSelectionListener 以查找 TreeSelectionEvent

    //tree selction event on the tree triggers this method
    public void valueChanged(TreeSelectionEvent e) {
            //which node was selected
            DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
            if (node == null) return;
            Object nodeInfo = node.getUserObject();
    
            //if node is a leaf
            if (node.isLeaf()) {
            //do something with the above object
    

    也许您可以在nodeInfo 对象上运行toString 并使用此字符串从数据库中检索有关该文件的详细信息,并分别在 JSplitPane 的右侧显示其详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多