Я искал здесь и нашел ответы на эту проблему, но не могу заставить их работать на меня.В основном у меня есть графический интерфейс, который содержит JTree внутри JScrollPane:
private void initComponents() {
scroll = new javax.swing.JScrollPane();
nodo padre = new nodo();
modeloArbol modelo = new modeloArbol(padre);
arbol = new arbolNodos(modelo);
У меня есть следующие классы:
public class arbolNodos extends JTree implements Serializable{
public arbolNodos(TreeModel newModel) {
public class listenerModeloArbol implements TreeModelListener{
//Overriding treeNodes*(TreeModelEvent e)
public class modeloArbol extends DefaultTreeModel implements Serializable{
public modeloArbol(TreeNode root) {
super(root);
}
public class nodo extends DefaultMutableTreeNode implements Serializable{
У меня также есть 2 кнопки, которые хранят (botonGuardarArbol) и извлекают (botonCargarArbol) используя XMLEncoder JTree (они действительно извлекают корневой узел дерева) в файл с соответствующими слушателями actionPerformed:
private void botonGuardarArbolActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("C:\\borrar\\presupuesto")));
encoder.writeObject(arbol.getModel().getRoot());
encoder.close();
private void botonCargarArbolActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
XMLDecoder decoder = new XMLDecoder( new BufferedInputStream(new FileInputStream("C:\\borrar\\presupuesto")));
nodo padre = (nodo) decoder.readObject();
modeloArbol modelo = new modeloArbol(padre);
decoder.close();
modelo.setRoot(padre);
arbolNodos arbolNuevo = null;
if( modelo != null ){
arbolNuevo = new arbolNodos(modelo);
arbol = null;
arbol = arbolNuevo;
((DefaultTreeModel)arbol.getModel()).reload();
}
else
arbolNuevo = new arbolNodos();
Дело в том, что когда я получаю сохраненное JTree, я знаю этохорошо извлекается, потому что я пытаюсь распечатать атрибуты во всех узлах дерева, и они в порядке, но когда я пытаюсь поместить его в Swing, он не обновляется, и представление блокируется (т.е. я не могу ничего манипулировать вУ меня было до загрузки).Я пробовал многочисленные темы обновления / обновления JTree, но не смог это исправить.Как я могу это сделать?
Спасибо