Problemas ao pegar informações dentro de uma JTABLE

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?

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.

Era exatamente isso, obrigado!

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

abraço!

1 curtida

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

1 curtida