Wątek przeniesiony 2014-01-18 19:40 z Java przez bogdans.

Pobranie danych z JTable

0

Witam,
chciałbym dane które mam w tabeli JTable zapisać do tablicy.

zmienna która przechowuje moją jTabele nazywa się tabela1
nie wiem czy taki sposób będzie dobry:

StringBuilder daneZTabeli = new StringBuilder();
       for(int i = 0; i < tabelaSprzedazy.getModel().getRowCount(); i++)
       {
           for(int j = 0; j < tabelaSprzedazy.getModel().getRowCount(); j++)
           {
               daneZTabeli.append(tabelaSprzedazy.getModel().getValueAt(i, j)+";");
               
           }
       }
       
String dane = danezTabeli.toString();
String nowaTabela[] = dane.split(";");
0

Będzie zły, druga pętla powinna mieć inny zakres. Poza tym, na pewno chcesz uzyskać tablice jednowymiarową?

0

chciałbym w jakikolwiek sposób przechwycić te dane (w taki sposób abym mógł się do nich odwołać) które są w JTabelce może być tablica jednowymiarowa/dwuwymiarowa to obojętne.

albo w jednej dałbym zakres do tabela1.getModel().getColumnCount() a w drugiej zakres do tabela1.getModel().getRowCount()?

1

A jak są w JTable, to nie możesz się do nich odwołać?

0

Mogę tylko tą tabelkę wygenerowałem sobie przez NetBeansa na zasadzie "drag and drop" i nie wiem jak dojść do nazwy tej tablicy dwuwymiarowej która przechowuje dane w tej JTabelce.

przykładowo mam taki fragment kodu gdzie jest ta tablica

tabelaSprzedazy.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
2

A po Ci ta nazwa?

TableModel model = tabelaSprzedazy.getModel();
...
.... = model.getValueAt(i,j);
0

Zrobiłem coś takiego ale za każdym razem daje mi NullPointerException

try{
        TableModel model = tabelaSprzedazy.getModel();
        
        for(int i =0; i < model.getColumnCount();i++)
        {
            for(int j = 0; j < model.getRowCount(); j++)
            {
                tabliczka[i][j] = model.getValueAt(i, j).toString();
            }
        } 
        
        
        } catch (NullPointerException e) {
            JOptionPane.showMessageDialog(null, "Wystąpił wyjątek: " + e);
        }


0

Daj sobie spokój z tym kopiowaniem danych z JTable do jakiejś tablicy. To jest zupełnie niepotrzebne, zajmuje czas i pamięć. Bardzo łatwo o niespójność danych, co innego jest w JTable, co innego w tablicy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1