Dodawanie elementów do komórek tabeli (JTable) z pliku.

Greeey
2013-06-09 15:46
Greeey
0

Witam, mam problem, chodzi o to, że nie wiem jak zrobić aby do kolejnych komórek w wierszu tabeli (JTable) dodawało mi z pliku tekstowego kolejne linijki.

Np. w pliku tekstowym mam

aaaaaaaa
aaaa
aa
aaa
aa
a

to w tabeli (JTable) pojawi się

aaaaaaaa | aaaa | aa
aa | aa | a

itd..
można powiedzieć prościej, żeby wypełniało mi tablicę (JTable) wierszami, jak macierz 2-wymiarową.

dodane tagi do wątku - fp

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2013-06-09 16:07

Rejestracja: 6 lat temu

Ostatnio: 11 miesięcy temu

Lokalizacja: Dworzec

0

zapisujesz sobie zawartość pliku do tablicy a potem tworząc jtable dodajesz tablice jako parametr new JTable(ZAWARTOSC,NAZWA KOLUMN);


Kierowca TROLLejbusa

Pozostało 580 znaków

Greeey
2013-06-09 16:21
Greeey
0

a dobrze w ogóle odczytuje z pliku do tablicy??

public void Odczyt()
{
        try {
            File plik = new File("Zadania.txt");
            Scanner skaner = new Scanner(plik);
            while(skaner.hasNext())
            {
                for(int i=0;i<10;i++)
                    for(int j=0;j<3;j++)
                    tablica[i][j]=skaner.nextLine();
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex);
        }catch(NullPointerException e){}
    } 

dodane znaczniki <code class="java"> - fp

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2013-06-09 17:53

Rejestracja: 6 lat temu

Ostatnio: 11 miesięcy temu

Lokalizacja: Dworzec

0
ArrayList<String> w = new ArrayList<String>();

                File plik = new File("C:/Zadania.txt");
                Scanner skaner = new Scanner(plik);
                try {
                while(skaner.hasNext())
                {
                        w.add(skaner.nextLine());

                }
                      }catch(Exception e){
                      }

dodane znaczniki <code class="java"> - fp


Kierowca TROLLejbusa
edytowany 2x, ostatnio: furious programming, 2013-06-09 18:52

Pozostało 580 znaków

Greeey
2013-06-09 18:16
Greeey
0

A jak przepisać tą listę (bo to ArrayList) do tablicy 2-wymiarowej?

Pozostało 580 znaków

2013-06-09 18:41
Moderator

Rejestracja: 11 lat temu

Ostatnio: 6 dni temu

0
String[][] tablica = new String[w.size()/3][3];
for(int i=0;i<w.size()/3;i++)
{
    for(int k=0;k<3;k++)
    {
        tablica[i][k] = w.get(3*i+k);
    }
}

Zakładam, że ilość wierszy dzieli się przez 3.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2013-06-09 18:45

Rejestracja: 6 lat temu

Ostatnio: 11 miesięcy temu

Lokalizacja: Dworzec

0
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

import javax.media.NoPlayerException;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JTextArea;
//import javax.media.Manager;
//import javax.media.MediaLocator;
//import javax.media.NoPlayerException;
//import javax.media.Player;

/**
 * @author init0
 * 
 */
public class Test extends JFrame {

    public Test() throws FileNotFoundException {
        JTable k = null;
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        JTextArea j = new JTextArea();
        j.setBounds(5, 5, 300, 300);

        ArrayList<String> w = new ArrayList<String>();

        String kk[] = { "TEST" };

        File plik = new File("C:/Zadania.txt");
        Scanner skaner = new Scanner(plik);
        try {
            // while(skaner.hasNext())
            while (skaner.hasNext()) {
                w.add(skaner.nextLine());

            }
            Object tt[][] = new Object[w.size()][1];
            for (int i = 0; i < w.size() - 1; i++) {
                tt[i][0] = w.get(i);
            }
            k = new JTable(tt, kk);
            k.setDragEnabled(true);
        } catch (NullPointerException e) {
        }
        add(k);
        pack();

    }

    /**
     * @param args
     * @throws IOException
     * @throws NoPlayerException
     * @throws InterruptedException
     */
    public static void main(String[] args) throws IOException,
            NoPlayerException, InterruptedException {

        new Test().setVisible(true);
    }
}

Nie jest to program który chciałeś, ale masz tu odpowiedź na wszystkie pytania. Jak chcesz fajny, szybki sprawny.. pisz ;)


Kierowca TROLLejbusa
edytowany 2x, ostatnio: init0, 2013-06-09 18:56
Przypominam o wstawianiu kodu w znaczniki kolorujące składnię; - furious programming 2013-06-09 18:53
Nie zamieszczaj (zwłaszcza w dziale Newbie) niepoprawnych kodów. W powyższym kodzie, obsługa błędów woła o pomsta do nieba. Zamiana ArrayList na tablicę dwuwymiarową jest niepoprawna - autor wątku chciał trzy kolumny, dałem wyżej poprawny kod, - bogdans 2013-06-10 00:14

Pozostało 580 znaków

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