Estou com um erro 2 erros q não sei como resolver eles acontecem de vez em quando as vezes um as vezes outro porem começou depois que fiz uma tela de carregar utilizando thread
primeiro erro:
Exception in thread “AWT-EventQueue-0” java.util.NoSuchElementException: Vector Enumeration
at java.util.Vector$1.nextElement(Vector.java:352)
at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1730)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1662)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:791)
at java.awt.Container.layout(Container.java:1510)
at java.awt.Container.doLayout(Container.java:1499)
at java.awt.Container.validateTree(Container.java:1695)
at java.awt.Container.validate(Container.java:1630)
at javax.swing.RepaintManager$3.run(RepaintManager.java:711)
at javax.swing.RepaintManager$3.run(RepaintManager.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:708)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1731)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Segundo erro:
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:474)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderRenderer(BasicTableHeaderUI.java:693)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableHeaderUI.java:737)
at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTableHeaderUI.java:765)
at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:796)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1662)
at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:96)
at java.awt.Container.preferredSize(Container.java:1796)
at java.awt.Container.getPreferredSize(Container.java:1780)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1664)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:724)
at java.awt.Container.layout(Container.java:1510)
at java.awt.Container.doLayout(Container.java:1499)
at java.awt.Container.validateTree(Container.java:1695)
at java.awt.Container.validate(Container.java:1630)
at javax.swing.RepaintManager$3.run(RepaintManager.java:711)
at javax.swing.RepaintManager$3.run(RepaintManager.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:708)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1731)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Segue o codigo executado pelo botão
private void pesquisar() {
Carregar dialog = new Carregar();
dialog.setVisible(true);
new Thread() {
<a class="mention" href="/u/override">@Override</a>
public void run() {
preencherTabela(“select * from cliente order by nome”);
dialog.dispose();
}
}.start();
}
Segue aqui também o método preencher tabela
public void preencherTabela(String sql) {
String[] colunas = new String[]{“ID”, “Nome”, “Cpf”, “Telefone”, “Email”, “Estado”, “Cidade”};
ArrayList dados = new ArrayList();
try {
Connection conexao;
conexao = ConexaoBD.conectar();
PreparedStatement comando = conexao.prepareStatement(sql);
ResultSet resultado = comando.executeQuery();
while (resultado.next()) {
dados.add(new Object[]{resultado.getInt(“codigo_cliente”), resultado.getString(“nome”), resultado.getString(“cpf”), resultado.getString(“cliente_telefone”), resultado.getString(“cliente_email”), resultado.getString(“cliente_estado”), resultado.getString(“cliente_cidade”)});
}
conexao.close();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane, “Cliente não encontrado” + ex);
}
ModeloTabela modelo = new ModeloTabela(dados, colunas);
jTablePadrao.setModel(modelo);
jTablePadrao.getColumnModel().getColumn(0).setPreferredWidth(50);
jTablePadrao.getColumnModel().getColumn(0).setResizable(false);
jTablePadrao.getColumnModel().getColumn(1).setPreferredWidth(295);
jTablePadrao.getColumnModel().getColumn(1).setResizable(false);
jTablePadrao.getColumnModel().getColumn(2).setPreferredWidth(118);
jTablePadrao.getColumnModel().getColumn(2).setResizable(false);
jTablePadrao.getColumnModel().getColumn(3).setPreferredWidth(118);
jTablePadrao.getColumnModel().getColumn(3).setResizable(false);
jTablePadrao.getColumnModel().getColumn(4).setPreferredWidth(250);
jTablePadrao.getColumnModel().getColumn(4).setResizable(false);
jTablePadrao.getColumnModel().getColumn(5).setPreferredWidth(120);
jTablePadrao.getColumnModel().getColumn(5).setResizable(false);
jTablePadrao.getColumnModel().getColumn(6).setPreferredWidth(200);
jTablePadrao.getColumnModel().getColumn(6).setResizable(false);
jTablePadrao.getTableHeader().setReorderingAllowed(false);
jTablePadrao.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTablePadrao.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
Realmente não sei oq fazer pois embora os erros não comprometam o desempenho do sistema eles estão ali.
Nem um try catch foi possível de capturar os erros
o dialog que aparece e fecha é na verdade uma tela de carregar que aparece durante a execução do select no banco de dados