Edycja tabeli

0

Witam. Mam pewien problem. Mianowicie. Wczytuje do tabeli dane z pliku tekstowego. Mam napisane metody dodające dane do tabeli i zapisujące dane w pliku, tylko nie wiem w jaki sposób edytować wybraną daną w tabeli i zmiany zapisać do pliku, tak aby po wczytaniu po raz kolejny danych w tabeli pojawiła się nowa wartość.

String[] naglowki={"Imie","nazwisko","adres","Rok studiów","kierunek studiów"};//nagłówki do tabeli
final Object[][] d=new Object[l][5];//tworzenie objektu

			String dane=" ";
			
			try	//wczytywanie danych
			{
				int k=0;
									
				FileReader plik = new FileReader ("studenci.txt"); 
	 			BufferedReader odczyt = new BufferedReader (plik);
	 		
	 			while (dane!=null)
	 			{
	 			
				
				for(int i=0; i<5;i++)//pętla odpowiadająca za przechodzenie między kolumnami
      			{
      			dane=odczyt.readLine();
      			
      			d [k][i]=dane;	
      			}	
    				k=k+1;//zmienna odpowiadająca za przechodzenie pomiędzy wierszami
    				
    			}
    			
    		
    			
				odczyt.close();
				
				
			}catch (IOException w)
			{
				JOptionPane.showMessageDialog(null,"Blad odczytu pliku tekstowego");
			}
			
			   final DefaultTableModel tab = new DefaultTableModel(d, naglowki);
   final JTable table = new JTable(tab);
   table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    table.setFillsViewportHeight(true);
	JScrollPane scrollPane = new JScrollPane(table);
  okno1.add(scrollPane);
0

Ja z kodu wyżej widzę tylko odczyt danych z pliku tekstowego, a następnie umieszczenie tych danych odpowiednio w tabeli, nic o 'zapisywaniu danych z tabeli do pliku' nie widzę (pisałeś, że masz

napisane metody dodające dane do tabeli i zapisujące dane w pliku, tylko nie wiem w jaki sposób edytować wybraną daną w tabeli i zmiany zapisać do pliku, tak aby po wczytaniu po raz kolejny danych w tabeli pojawiła się nowa wartość
), rozumiem jednak, że tych drugich po prostu nie masz.

Jeżeli odczytujesz z pliku BufferedReader'em (+FileReader), nie obce Ci pewnie jest też zapisywanie DO pliku (robisz to z BufferedWriter'a (+FileWriter), praktycznie niczym się do nie różni od odczytu, jeżeli nie robiłeś wcześniej, poczytaj dokumentację).
Jeżeli w trakcie działania programu zmienisz wartość którejkolwiek komórki w stworzonej przez Ciebie tabeli, to tabela 'już to wie', zmieniasz wartość pól jej obiektu. Do pobierania wartości komórek JTable służy metoda '.getValueAt()', gdzie parametrami jest wiersz i kolumna (czytaj dokumentację po więcej info). Stwórz więc po prostu tablicę String[][], dwoma 'for'ami' przeleć przez wszystkie wiersze i kolumny przypisując tej tablicy dane z tabeli, za pomocą metody wyżej przeze mnie wymienionej. Potem po prostu BufferedWriterem zapisz w pliku. Zrób jakiś button do zapisu (nadpisu) pliku .txt, albo po prostu zapisuj przed końcem pracy programu.
Pozdrawiam.

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