Daten aus einer JTable in einer Datei speichern

Status
Nicht offen für weitere Antworten.

hannes68

Aktives Mitglied
ich möchte gerne daten aus einer jtable speichern
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTable;

/*
 * Created on 28.09.2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author hannes68
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Editor {

	public static void main( String[] args )throws IOException 
	{ 


	BufferedReader eingabe = new BufferedReader(new FileReader("xyz.txt")); 
	int gelesen; 
	String eingabezeile; 
	BufferedWriter ausgabe = new BufferedWriter(new FileWriter("xyz2.txt")); 
    FileWriter fw = new FileWriter( "fileWriter.txt" ); 
	eingabezeile=eingabe.readLine(); 

	Vector input = new Vector(); // #### in diesem Vector speichern 

	while( eingabezeile != null ) 
	{ 
		StringTokenizer token= new StringTokenizer (eingabezeile); 

		String[] felder =eingabezeile.split("\\|"); 

		StringBuffer text =new StringBuffer(10); 
		input.add( felder ); 
		eingabezeile=eingabe.readLine(); 

	} 


	JMenuBar leiste=new JMenuBar(); 
	JMenu menu1 =new JMenu("Datei"); 
	JMenuItem item1 =new JMenuItem("Laden"); 
	JMenuItem item2=new JMenuItem("Speichern"); 
	menu1.add(item1); 
	menu1.add(item2); 
	leiste.add(menu1); 
    String label;
    

	Object rowData[][] = (Object[][])input.toArray( new Object[ input.size() ][] ); 

	String columnNames[] = { }; 



	JTable table = new JTable( rowData, columnNames ); 
	JFrame frame = new JFrame(); 

	frame.getContentPane().add( new JScrollPane(table) ); 
	table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF ); 
	frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
	frame.pack(); 
	frame.setVisible( true ); 
	frame.setJMenuBar(leiste); 
	table.setAutoCreateColumnsFromModel(false); 
	
	System.out.println("Rows: " + Integer.toString(table.getRowCount())); 
    System.out.println("Cols: " + Integer.toString(table.getColumnCount())); 
    System.out.println("--------------------"); 
	
    
    int x = 0; 
    int y = 0; 
    String sLine = ""; 
    
    while (y < table.getRowCount()) 
    { 
        while (x < table.getColumnCount())            
        { 
            sLine += table.getValueAt(y, x); 
            sLine += "|"; 
            x++; 
        } 
        ausgabe.write(Integer.toString(y) + ": " + sLine); 
        sLine = ""; 
        y++; 
        x = 0; 
        
    }
    
    
      
      
	}
}

gespeichert wird ja auch in einer datei aber leider nicht die veränderten daten in der Jtable
 

hannes68

Aktives Mitglied
das was ich mit
Code:
BufferedReader eingabe = new BufferedReader(new FileReader("xyz.txt"));
reinlade
 

hannes68

Aktives Mitglied
ich weis schon das speichern muss bei dem menüklick ausgeführt werden
nur geht das leider nicht den wenn ich das
Code:
int x = 0; 
    int y = 0; 
    String sLine = ""; 
    
    BufferedWriter ausgabe = new BufferedWriter(new FileWriter("DYN_cyclist2.txt")); 

    while (y < table.getRowCount()) 
    { 
        while (x < table.getColumnCount())            
        { 
            sLine += table.getValueAt(y, x); 
            sLine += "|"; 
            x++; 
        } 
        ausgabe.write(sLine); 
        sLine = ""; 
        y++; 
        x = 0; 
        ausgabe.flush(); 
    } 
    ausgabe.flush(); 
    ausgabe.close();

hier einfüge:
Code:
ActionListener al = new ActionListener() {
        public void actionPerformed( ActionEvent e )
        {
        
        	System.out.println("test");

        
        }
    };
    item2.addActionListener( al );

dann gibt es ja die table variable nicht mehr weil es ja nicht public ist
was soll ich jetzt machen??
 
B

Beni

Gast
So... ein Programm besteht aus mehreren Methoden und einigen Variablen.

Hier eine ungetestete Version, wie solch ein Programm einfacher aufgebaut wird:

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


public class Editor extends JFrame{
	private JTable table;
	
	public static void main( String[] args ){
		Editor editor = new Editor();
		editor.setVisible( true );
	}
	
	public Editor(){
		super( "Tabelle" );
		
		JMenuBar leiste=new JMenuBar();
		JMenu menu1 =new JMenu("Datei");
		JMenuItem load =new JMenuItem("Laden");
		JMenuItem write =new JMenuItem("Speichern");
		menu1.add(load);
		menu1.add(write);
		leiste.add(menu1);
		String label;
		
		table = new JTable();
		//table.setAutoCreateColumnsFromModel(false);
		getContentPane().add( new JScrollPane(table) );
		table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
		setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		setJMenuBar(leiste);
		pack();
		
		load.addActionListener( new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				read();
			}
		});
		
		write.addActionListener( new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				write();
			}
		});
	}
	
	private void read(){
		try{
			BufferedReader eingabe = new BufferedReader(new FileReader("xyz.txt"));
			int gelesen;
			String eingabezeile;

			eingabezeile=eingabe.readLine();

			Vector input = new Vector(); // #### in diesem Vector speichern

			while( eingabezeile != null )
			{
				StringTokenizer token= new StringTokenizer (eingabezeile);

				String[] felder =eingabezeile.split("\\|");

				StringBuffer text =new StringBuffer(10);
				input.add( felder );
				eingabezeile=eingabe.readLine();
		   }
		   
			Object rowData[][] = (Object[][])input.toArray( new Object[ input.size() ][] );

			String columnNames[] = { };

			table.setModel( new DefaultTableModel( rowData, columnNames ));
		}
		catch( IOException ex ){
			ex.printStackTrace();
		}
	}
	
	private void write(){
		try{
		   BufferedWriter ausgabe = new BufferedWriter(new FileWriter("xyz2.txt"));
		   FileWriter fw = new FileWriter( "fileWriter.txt" );
		
		   int x = 0;
		   int y = 0;
		   String sLine = "";
	   
		   while (y < table.getRowCount()){
		   		while (x < table.getColumnCount()){
		   			sLine += table.getValueAt(y, x);
		   			sLine += "|";
		   			x++;
		   		}
		   		ausgabe.write(Integer.toString(y) + ": " + sLine);
		   		sLine = "";
		   		y++;
		   		x = 0;
		   }
		}
		catch( IOException ex ){
			ex.printStackTrace();
		}
	}
}
 
B

Beni

Gast
Code:
public class StringTableModel extends DefaultTableModel{
   public StringTableModel( Object[][] data, String[] names ){
      super( data, names );
   }

   // Eine Angabe, welchen Typ von Objekten in den Columns angezeigt werden soll
   public Class getColumnClass(int columnIndex) {
      return String.class;
   }

   // Jede Zelle ist editierbar
   public boolean isCellEditable(int rowIndex, int columnIndex) {
      return true;
   }
}
 

hannes68

Aktives Mitglied
@beni
es funktioniert zwar alles so wie ich es wollte aber ich brächte trotzdem mal rat wie man eine suchfunktion einbauen kann :D
es soll nach strings in der jtable gesucht werden welche sich in der 4.zelle befinden

thanks
 
B

Beni

Gast
Nimm ein JTextField, und füg ihm ein ActionListener hinzu. Wann immer der User nun "ENTER" drückt, wird dieser Listener angesprochen, und du kannst den eingegebenen Text (textField.getText) mit dein Einträgen in der Tabelle vergleichen. (am besten String.startsWith... verwenden). Das Ergebnis kannst du dann irgendwohin schreiben, z.B. gleich in die Tabelle. (Die Originaldaten solltest du dann allerdings als Variable speichern, damit du schnell wieder alles anzeigen kannst).
 

hannes68

Aktives Mitglied
gibt es auch ne möglichkeit das die erste zeile im der datei nicht ausgelesen wird??
oder besser:
die erste zeile in der textdatei muss immer oben stehen bleiben durch das sotieren wird es aber bei g eingefügt(was ja logisch ist :) )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U JTable mit Daten aus einer HashMap füllen AWT, Swing, JavaFX & SWT 8
M Auslesen veränderter Daten in einer jTable AWT, Swing, JavaFX & SWT 2
L JTable und Daten aus einer ArrayList AWT, Swing, JavaFX & SWT 6
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
J Daten aus einer Textdatei in ArrayList holen AWT, Swing, JavaFX & SWT 9
S Allgemeine Frage zur Unterbringung von allgemeinen Daten einer Applikation AWT, Swing, JavaFX & SWT 2
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
W Daten von Controller zu Controller übertragen AWT, Swing, JavaFX & SWT 7
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
B AWT Bot um Daten auf Website einzugeben und die Antwort zu bekommen AWT, Swing, JavaFX & SWT 2
L Daten bearbeiten ohne GUI zu blockieren - daten haltung/zurück geben AWT, Swing, JavaFX & SWT 15
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
T JavaFX Model Daten übergeben AWT, Swing, JavaFX & SWT 4
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX Daten an WebView Komponente AWT, Swing, JavaFX & SWT 1
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
M Java FX Daten an Controller übergeben AWT, Swing, JavaFX & SWT 3
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D Applet GWT speichert Daten nicht in Datenbank AWT, Swing, JavaFX & SWT 2
S SWT In Listen den Einträgen Daten zuordnen AWT, Swing, JavaFX & SWT 2
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
F Swing JTable: Daten voreinstellen AWT, Swing, JavaFX & SWT 4
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
D SWT TreeViewer: Daten aus Model gelöscht... trotzdem noch im Baum AWT, Swing, JavaFX & SWT 4
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
O JTable zeigt die alte Daten wieder AWT, Swing, JavaFX & SWT 23
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
M Swing Daten von JPanel zu JFrame senden AWT, Swing, JavaFX & SWT 13
C Swing JTable Daten einfügen AWT, Swing, JavaFX & SWT 6
Ollek IndexOutOfBoundsException bei neuen Daten in JTable AWT, Swing, JavaFX & SWT 13
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
M Trotz richtiger Daten, falsches Bild wird gezeichnet?! AWT, Swing, JavaFX & SWT 4
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
A Swing(Daten zugreifen) AWT, Swing, JavaFX & SWT 25
S JComboBox - veränderliche Daten AWT, Swing, JavaFX & SWT 6
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
Ollek Realisierung: JTable zur Laufzeit mit neuen Daten füllen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing jTable Daten unsichtbar AWT, Swing, JavaFX & SWT 12
T JTree Daten in DB schreiben am besten SQL AWT, Swing, JavaFX & SWT 21
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
T Daten der gesamten Woche anzeigen AWT, Swing, JavaFX & SWT 2
D Problem mit JFileChooser -> Daten werden mit anführungsstriche in JTable geschrieben AWT, Swing, JavaFX & SWT 8
H JList zeigt die Daten aus dem Array nicht an! AWT, Swing, JavaFX & SWT 13
E Daten von JDialog nach JFrame übertragen AWT, Swing, JavaFX & SWT 4
K TableModel mit Daten aus Datenbank füllen AWT, Swing, JavaFX & SWT 7
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
L Swing Daten in JTable aktualisieren AWT, Swing, JavaFX & SWT 5
H Swing Tabelle nach Klick auf Button mit Daten füllen? AWT, Swing, JavaFX & SWT 2
B Swing JList Daten löschen AWT, Swing, JavaFX & SWT 13
R Swing XML Datei in JTree, Problem mit Daten einlesen AWT, Swing, JavaFX & SWT 34
A SWT: Daten in Raster mit Gitternetzlinien darstellen AWT, Swing, JavaFX & SWT 7
C Swing JTextField-Daten über mehrere Dialoge AWT, Swing, JavaFX & SWT 18
K TableModel Daten übergeben AWT, Swing, JavaFX & SWT 9
Milady Swing Änderung von Daten mit sql AWT, Swing, JavaFX & SWT 2
X Swing Daten aus Vector ins TableModel ?? AWT, Swing, JavaFX & SWT 12
T Swing Liste von Daten anzeigen AWT, Swing, JavaFX & SWT 4
S Swing Daten aus Datenbank in JTable AWT, Swing, JavaFX & SWT 2
E JCombobox mit Daten aus DB füllen AWT, Swing, JavaFX & SWT 9
L Daten werden in JTable nicht angezeigt:( AWT, Swing, JavaFX & SWT 6
Milady Annzeigen alle Daten aus der Tabelle AWT, Swing, JavaFX & SWT 6
P Swing Liste von Daten auf JFrame AWT, Swing, JavaFX & SWT 6
E Daten aus sortierter Tabelle lesen AWT, Swing, JavaFX & SWT 2
X Swing JList -> Daten anders darstellen als im Model hinterlegt -> möglich ? AWT, Swing, JavaFX & SWT 9
X Doppelte Daten in DefaultListModel unterbinden AWT, Swing, JavaFX & SWT 3
ModellbahnerTT SWT Daten zur nächsten WizardPage senden AWT, Swing, JavaFX & SWT 4
J Daten in JTable nach Sortierung auslesen AWT, Swing, JavaFX & SWT 2
hdi Swing JTable & Filtern: Daten nicht in der View AWT, Swing, JavaFX & SWT 2
S JTable Bug - eingegebene Daten werden falsch geparst :( AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben