Bom galera, estou desenvolvendo uma aplicação aqui em que coloco em um JTree o historico dos usuários do sistema.
Crio e faço a inserção dos nodos na arvore, mas quando mostra na tela, soh aparece o JTree, definido por default no NetBeans.
Gostaria de saber como atualizar os nodos da arvore, considerando os valores que construo
Abaixo segue o codigo:
package GUI;
import DAO.DAOBase;
import Util.Par;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
/*
* Historico.java
*
* Created on 13 de Agosto de 2009, 16:51
*/
/**
*
* @author Museu
*/
public class Historico extends javax.swing.JDialog {
private Vector hist;
private JTree Arvore;
/** Creates new form Historico */
public Historico(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
// centraliza aplicacao
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
this.setLocation((screenSize.width - this.getSize().width) / 2,
(screenSize.height - this.getSize().height) / 2);
System.gc();
jLblUsuario.setText(Principal.getUsuario().getNome());
// recupera o historico para montar a arvore
hist = DAOBase.recupera_historico(Principal.getUsuario().getId());
preencheArvore(hist);
}
public void preencheArvore(Vector hist){
DefaultMutableTreeNode raiz = montarArvore(hist);
jTree1 = new JTree(raiz);
}
private DefaultMutableTreeNode montarArvore(Vector hist){
Par p;
String[] invs;
DefaultMutableTreeNode raiz = new DefaultMutableTreeNode("Histórico");
DefaultMutableTreeNode subno;
for(int i = 0; i < hist.size(); i ++){
p = (Par)hist.get(i);
subno = new DefaultMutableTreeNode(formataData(p.getDate().toString()));
System.out.println(formataData(p.getDate().toString()));
invs = p.getInvs().split(",");
for( int j = 0; j < invs.length; j ++ ){
System.out.println(" >> " + invs[j]);
subno.add(new DefaultMutableTreeNode(invs[j]));
}
raiz.add(subno);
}
return raiz;
}
// Esse metodo e gerado automaticamente pelo NetBeans.
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Código Gerado ">
private void initComponents() {
jLblTitulo = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTree1 = new javax.swing.JTree();
jPanel2 = new javax.swing.JPanel();
jLblNome = new javax.swing.JLabel();
jLblUsuario = new javax.swing.JLabel();
jLblNivelPerm = new javax.swing.JLabel();
jLblTotal = new javax.swing.JLabel();
jLblDescTotal = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Hist\u00f3rico do Usu\u00e1rio");
jLblTitulo.setText("<html> Nesta tela s\u00e3o apresentados seus dados de usu\u00e1rio e seu hist\u00f3rico de <br> \nfichas de cataloga\u00e7\u00e3o alteradas nos \u00faltimos 30 dias.</html>");
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Hist\u00f3rico de fichas alteradas", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(0, 0, 0)));
jTree1.setRootVisible(false);
jScrollPane1.setViewportView(jTree1);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)), "Dados do usu\u00e1rio", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11), new java.awt.Color(0, 0, 0)));
jLblNome.setText("Nome:");
jLblUsuario.setText("jLabel4");
jLblNivelPerm.setText("N\u00edvel de permiss\u00e3o:");
jLblTotal.setText("Permiss\u00e3o Total:");
jLblDescTotal.setText("<html> Voc\u00ea tem permiss\u00e3o para realizar consultas <br> e emiss\u00e3o de relat\u00f3rios e fazer altera\u00e7\u00f5es <br> nos dados das fichas de cataloga\u00e7\u00e3o. </html> ");
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLblTotal)
.addComponent(jLblDescTotal)
.addComponent(jLblNome)
.addComponent(jLblUsuario)
.addComponent(jLblNivelPerm))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLblNome)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLblUsuario)
.addGap(23, 23, 23)
.addComponent(jLblNivelPerm)
.addGap(22, 22, 22)
.addComponent(jLblTotal)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLblDescTotal)
.addContainerGap(54, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLblTitulo))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jLblTitulo)
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Historico(new javax.swing.JFrame(), true).setVisible(true);
}
});
}
// Declaração de variáveis - não modifique
private javax.swing.JLabel jLblDescTotal;
private javax.swing.JLabel jLblNivelPerm;
private javax.swing.JLabel jLblNome;
private javax.swing.JLabel jLblTitulo;
private javax.swing.JLabel jLblTotal;
private javax.swing.JLabel jLblUsuario;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTree jTree1;
// Fim da declaração de variáveis
}
Vlws, pessoal