JTree с построителем форм
Я создал форму со стандартным редактором NetBeans и вставил jTree
в теме. Затем он каким-то образом создает кучу элементов, таких как "цвета", "спорт", "еда". Но это не в коде создания. Откуда он берется и как я могу его отредактировать...
Даже если я сделаю jTree1.removeAll();
все еще там... и не мой код для добавления новых элементов в jTree работает.
private void test(java.awt.event.MouseEvent evt) {
//trying to remove all, but it does not remove anything
jTree1.removeAll();
//it does print it in debug meaning that this function is called
System.out.println("qwe");
//create the root node
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
//create the child nodes
DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("Child 1");
DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("Child 2");
//add the child nodes to the root node
root.add(child1);
root.add(child2);
//now how do I add it to the tree?
//???
}
Мне нужно уметь редактировать jTree
содержимое во время выполнения.
1 ответ
Проблема в следующем вы создаете свой JTree
как это JTree tree = new JTree()
(согласно документации) у него есть образцы узлов. Добавьте следующие строки после создания ваших узлов (root,child1,child2), и все будет работать:
DefaultTreeModel model =(DefaultTreeModel) jTree1.getModel();
model.setRoot(root);
Также вам не нужно звонить jTree1.removeAll();
используется для других целей.( документы)
Читать учебник для JTree
Инициализируйте JTree внутри метода createUIComponents() настраиваемого инициализатора графического интерфейса.
Чтобы создать собственный исходный код инициализатора графического интерфейса пользователя для определенного компонента, выполните следующую общую процедуру:
Выберите желаемый компонент.
В Инспекторе отметьте опцию Custom Create.
В текстовом редакторе найдите метод createUIComponents() и введите желаемый исходный код. Код в этом методе не будет удален при компиляции.
Полное объяснение:https://www.jetbrains.com/help/idea/creating-form-initialization-code.html