Erro ao trabalhar com thread: Exception in thread “AWT-EventQueue-0” java.util.NoSuchElementException: Vector Enumeration

0 respostas
java
lucas_dias

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

Criado 16 de dezembro de 2018
Respostas 0
Participantes 1