我正在做一项作业,为酒店创建多房间选择。 我的想法是使用 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/