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

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

0

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

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

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

0

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

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.

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 ;)

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