Problemas ao pegar informações dentro de uma JTABLE

3 respostas
jtablejavaerror
L

Olá,

Sou novato nessa linguagem e estou com a dificuldade na seguinte coisa, estou criando uma calculadora para um método matemático chamado gauss que o procedimento se da por matriz e no começo do programa o usuário informa quantas incógnitas tem a matriz dele, ai através do DefaultTableModel eu defino quantas linhas e colunas vai ter minha JTABLE ai esta o codigo que faço isso.

DefaultTableModel modelo = new DefaultTableModel();

linhas = Integer.parseInt(NIncognita.getText());     
    
    colunas = linhas + 1;      
    
    for (int i = 1; i <= colunas; i++) {
        if (i == colunas) {
            modelo.addColumn("C");
        }else{
        modelo.addColumn("X" + i);
        }
    }
    modelo.setNumRows(linhas); 
    JTabela.setModel(modelo);

Ok, até ai sem problema algum.

O próximo passo seria o usuário colocar os valores correspondestes dentro da JTABLE e clicar no jbutton para calcular.

Ai que eu não sei o que fazer, eu preciso pegar os valores dentro da JTABLE e colocar numa variável que é em DOUBLE
segue o ultimo código que tentei realizar a operação.

double[][] ValoresDaJtable;
        for (int i = 0; i < Tabela.getRowCount(); i++) {
            for (int j = 0; j < Tabela.getColumnCount(); j++) {                
                ValoresDaJtable[i][j] = Double.parseDouble(String.valueOf(JTabela.getValueAt(i, j)));
            }            
        }

No output aparece a seguinte mensagem

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at matriz.gauss.CalcularActionPerformed(gauss.java:169)

at matriz.gauss.access$200(gauss.java:10)

at matriz.gauss$3.actionPerformed(gauss.java:79)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6533)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)

at java.awt.Component.processEvent(Component.java:6298)

at java.awt.Container.processEvent(Container.java:2236)

at java.awt.Component.dispatchEventImpl(Component.java:4889)

at java.awt.Container.dispatchEventImpl(Container.java:2294)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)

at java.awt.Container.dispatchEventImpl(Container.java:2280)

at java.awt.Window.dispatchEventImpl(Window.java:2746)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

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:76)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.awt.EventQueue$4.run(EventQueue.java:731)

at java.awt.EventQueue$4.run(EventQueue.java:729)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)

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)

já peço perdão se cometi alguma atrocidade hahah

Mas alguem sabe alguma solução para meu problema?

3 Respostas

Eslley

Bem acho que o erro está aqui, você não definiu o tamanho:
double[][] ValoresDaJtable;

Deveria ser assim, exemplo:
double[][] ValoresDaJtable = new double[10][10];
onde 10 e 10 é a quantidade de linhas e colunas;

Ai você define o tanto de linhas e colunas.

L

Era exatamente isso, obrigado!

é engraçado em pensar que quebrei a cabeça pensando que era algo muito mais complexo!

abraço!

drsmachado

Apenas uma super sugestão: fuja de DefaultTableModel. Implementar um table model para tua necessidade é a melhor forma de trabalhar com JTable

Criado 4 de outubro de 2016
Ultima resposta 5 de out. de 2016
Respostas 3
Participantes 3