java - 使用 Netbeans IDE 在 jTree Java 上获取字符串值

标签 java netbeans click jtree

我正在做一项作业,为酒店创建多房间选择。 我的想法是使用 jTree,这样我就可以选择 jTree 的多个子级。当我们使用 jTree 时,我们可以使用 ctrl+click 选择多个选项。我首先在 Netbeans 中创建项目,然后从 Pallete 添加 jTree。之后,我使用 TreeModel 的自定义代码并添加如下元素:

public void generateRoom() {
    DefaultMutableTreeNode room = new DefaultMutableTreeNode("Room");
    DefaultMutableTreeNode common = new DefaultMutableTreeNode("Common");
    DefaultMutableTreeNode vip = new DefaultMutableTreeNode("VIP");
    DefaultMutableTreeNode vvip = new DefaultMutableTreeNode("VVIP");

    room.add(common);
    room.add(vip);
    room.add(vvip);
    DefaultTreeModel model = new DefaultTreeModel(room);
    jTree1.setModel(model);
}

在构造函数中调用该方法后,我在jTree上添加了MouseClick事件。问题是我找不到如何通过 ctrl+click 获取多个子项。

谢谢,希望有人能帮帮我。

我尝试像这样添加 MouseOnclick :

private void jTree1MouseClicked(java.awt.event.MouseEvent evt) {
    // TODO add your handling code here:
    if (evt.getClickCount() == 1) {
        System.out.println(jTree1.getSelectionModel().toString());
    }
}

是的,它在控制台上得到了以下结果: 如果我只单击一个 child ,其结果是: javax.swing.tree.DefaultTreeSelectionModel 15980197 [[房间,公共(public)]@1]

如果我使用 ctrl+click,它会显示: javax.swing.tree.DefaultTreeSelectionModel 15980197 [ [房间,公共(public)]@1 [房间,VIP]@2 ]

现在的问题是如何获取 Common 或 VIP 之类的字符串.. 谢谢..

最佳答案

或许可以使用

public TreePath[] getSelectionPaths()

public int[] getSelectionRows()

关于java - 使用 Netbeans IDE 在 jTree Java 上获取字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417896/

相关文章:

java - 如何使搜索结果可点击

javascript - jQuery:防止单击子元素的类:在 tr 单击时重定向页面,除了某些 td

javascript - Netbeans 8.0.2 的语法高亮和代码折叠不适用于 PHP、HTML、Javascript

java - jTabbedPane 在加载时打开不同的选项卡

java - 在 NetBeans 中生成匿名监听器

java - 是我,还是 Eclipse 不可预测?

javascript - 有没有办法在 blur 或 focusout 事件中获取被点击的元素?

java - 使用 Java 9 运行应用程序,模块 java.base 不是 "opens java.io"

具有不同名称的java项目部署

java - java中分隔字母和数字的正则表达式