Получение строкового значения в jTree Java с помощью IDE Netbeans - PullRequest
1 голос
/ 21 июня 2011

У меня домашнее задание по созданию нескольких номеров для отеля.Моя идея заключается в использовании jTree, чтобы я мог выбрать более одного дочернего элемента jTree.Когда мы используем jTree, мы можем выбрать более 1 опции, используя Ctrl + клик.Я начал с создания проекта в Netbeans, а затем добавил 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);
}

После вызова метода в конструкторе я добавил событие MouseClick на jTree.Проблема в том, что я не могу найти, как получить несколько дочерних элементов с помощью Ctrl + клик.

Спасибо, надеюсь, кто-нибудь мне поможет.

Я пытался добавить 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());
    }
}

Да, это работало со следующим результатом на консоли: если я щелкаю только одного дочернего элемента, его результат был: javax.swing.tree.DefaultTreeSelectionModel 15980197 [[Room, Common] @ 1]

Если я использую Ctrl + клик, он показывает: javax.swing.tree.DefaultTreeSelectionModel 15980197 [[Room, Common] @ 1 [Room, VIP] @ 2]

Теперь проблема в том, как мне получить строкукак общий или VIP .. Спасибо ..

1 Ответ

1 голос
/ 21 июня 2011

Может быть, использовать

public TreePath[] getSelectionPaths()

или

public int[] getSelectionRows()
...