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 -
}