Pessoal estou com um probleminha ao utilizar os componentes JTree e JTable.
Primeiramente, deixe me explicar o que estou tentando fazer. Eu tenho uma JTree em que o usuario ao clicar em um dos NOD selecionado, deveria mudar uma suposta “tela do lado”. Essa tela nada mais é do que diferentes JTables sendo mostrada de acordo com o NOD (uma de cada vez é claro).
Meu problema é o seguinte, quando crio uma JTable assim que o evento onclick no NOD é selecionado, em seguinda quando clico em outro NOD, vem o tal ERRO. Não consigo desabilitar a JTable (já tentei usar o setEnable, setVisible, entre outros), porém, ele contiua lá. Se eu tento criar a tabela de novo usando o SetModel da JTable, ele cria outra tabela diferente. Mais a primeira ainda continua la.
Se alguem puder me ajudar, agradesceria muito.
Seguem em baixo o codigo
import java.awt.BorderLayout;
import java.awt.Panel;
import javax.swing.JMenuBar;
import javax.swing.JTable;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
/*
- NovoJFrame.java
- Created on 26 de Fevereiro de 2008, 13:21
*/
/**
*
-
@author marcelo.sekimoto */ public class NovoJFrame extends javax.swing.JFrame { private String lastSelected; private Panel panelTable; private JToolBar down; private JTree tree; private JMenuBar top; private JTable table; private DefaultMutableTreeNode patient, study, serie, image; private DefaultTableModel model; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1;
/** Creates new form NovoJFrame */ public NovoJFrame() { initComponents(); criarArvore(); criarBarra(); criarTabelaSeries(30); }
public void treeMouseClicked(java.awt.event.MouseEvent evt) { try { if ( tree.getLastSelectedPathComponent().toString() == “Patient1” ) { System.out.println(“Paciente Selecionado”); criarTabelaPaciente(30); } else if ( tree.getLastSelectedPathComponent().toString() == “Study1”) { System.out.println(“Serie Selecionada”); table.setVisible(false); } else if ( tree.getLastSelectedPathComponent().toString() == “Series1” ) { System.out.println(“Estudo Selecionado”); } else if ( tree.getLastSelectedPathComponent().toString() == “Image001” ) { System.out.println(“Imagem Selecionada”); } else { System.out.println(“ERRO”); } lastSelected = tree.getLastSelectedPathComponent().toString(); } catch (NullPointerException e) { System.out.println(“ERRO”); } }
public void criarArvore() { // Inicio do Jtree DefaultMutableTreeNode root = new DefaultMutableTreeNode( “DICOMDIR” ); patient = new DefaultMutableTreeNode(“Patient1”); study = new DefaultMutableTreeNode( “Study1” ); serie = new DefaultMutableTreeNode( “Series1” ); image = new DefaultMutableTreeNode( “Image001” ); serie.add(image); image = new DefaultMutableTreeNode( “Image002” ); serie.add(image); image = new DefaultMutableTreeNode( “Image003” ); serie.add(image); study.add(serie); serie = new DefaultMutableTreeNode( “Series2” ); image = new DefaultMutableTreeNode( “Image001” ); serie.add(image); study.add(serie); patient.add(study); root.add(patient); tree = new JTree( new DefaultTreeModel( root ) ); getContentPane().setLayout(null); getContentPane().add(tree); tree.setBounds(0, 0, 200, 600); tree.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); getContentPane().add(tree, BorderLayout.WEST); // Fim do JTree
// Inicio do evento JTree tree.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { treeMouseClicked(evt); } }); // Fim evento no JTree
}
public void criarBarra() { panelTable = new Panel(); panelTable.setBackground(java.awt.Color.gray); panelTable.setBounds(200, 0, 600, 30); getContentPane().add(panelTable); }
public void criarTabelaSeries(int altTabela) { }public void criarTabelaPaciente (int altTabela) { DefaultTableModel model = new DefaultTableModel(new String[][] { {“TAG”, “Attribute Name”, “VR”, “VM”, “VALUE”}, {“0040,0002”, “Scheduled Procedure Step Start Date”, “DA”, “1”, null}, {“0040,0003”, “Scheduled Procedure Step Start Time”, “TM”, “1”, null}, {“0008,0050”, “Accession Number”, “SH”, “1”, null}, {“0008,0090”, “Referring Physician?s Name”, “PN”, “1”, null}, {“0010,0010”, “Patient?s Name”, “PN”, “1”, null}, {“0010,0020”, “Patient ID”, “LO”, “1”, null}, {“0010,0030”, “Patient’s Birth Date”, “DA”, “1”, null}, {“0010,0040”, “Patient’s Sex”, “CS”, “1”, null}, {“0008,0060”, “Modality”, “CS”, “1”, null}, {“0008,103E”, “Series Description”, “LO”, “1”, null}, {“0008,1030”, “Study Description”, “LO”, “1”, null}, {“0032,1033”, “Requesting Service”, “LO”, “1”, null} }, new String[] {“TAG”, “Attribute Name”, “VR”, “VM”, “VALUE”}) { public boolean isCellEditable(int row, int column) { // se a coluna for diferente de 4 não podera ser editada if (column != 4) { return false; } return super.isCellEditable(row, column); } }; table = new JTable(model); table.setBounds(201, altTabela, 600, 209); table.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); getAccessibleContext().setAccessibleParent(tree); getContentPane().add(table); }
/** 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. */ // private void initComponents() { jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenu2 = new javax.swing.JMenu(); jMenu3 = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(“Carestream Health - Conversor DicomDir”); setBounds(new java.awt.Rectangle(112, 84, 800, 600)); setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); setFocusTraversalPolicyProvider(true); setMinimumSize(new java.awt.Dimension(800, 600)); setResizable(false); getAccessibleContext().setAccessibleParent(this); jMenuBar1.setToolTipText(""); jMenu1.setText(“Novo”); jMenu1.setToolTipText(“Novo Arquivo”); jMenuBar1.add(jMenu1);jMenu2.setText(“Abrir”); jMenu2.setToolTipText(“Abrir Arquivo”); jMenuBar1.add(jMenu2);
jMenu3.setText(“Salvar”); jMenu3.setToolTipText(“Salvar Arquivo”); jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 730, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 521, Short.MAX_VALUE) ); pack(); }//
/**
-
@param args the command line arguments
*/
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new NovoJFrame().setVisible(true);
}
});
}
// Declaração de variáveis - não modifique private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu2; private javax.swing.JMenu jMenu3; private javax.swing.JMenuBar jMenuBar1; // Fim da declaração de variáveis
-
}