Einfügen von Daten in eine Tabelle

Status
Nicht offen für weitere Antworten.

MC_Basstard

Mitglied
Hallo,

ich brächte mal eure Hilfe und hoff, dass ihr mir helfen könnt.

Ich hab mir ne Tabelle erstellt:

Java:
public Telefonbuch()							
            {
	String[][] rowData = {
	     { "Haus","Dach","bla","3147 319ß273","234123" }, 
                  { "Haus","Dach","bla","3147 319ß273","234123" }, 
                  { "Haus","Dach","bla","3147 319ß273","234123" }, 
                  { "Haus","Dach","bla","3147 319ß273","234123" }, 
                  { "Haus","Dach","bla","3147 319ß273","234123" }, 
	  	};
	String[] columnNames = {
		"Vorname", "Nachname","Abteilung","Handynummer","Nummer"
		};
	
	frame.setDefaultCloseOperation(EXIT_ON_CLOSE );
	JTable table = new JTable( rowData, columnNames );
	frame.add( new JScrollPane(table) );
	frame.pack();
 	frame.setVisible( true );					
 	frame.setSize(800,300);		
 	frame.setTitle("Telefonbuchtest");	
 	frame.setResizable(true);
	}

Ich hab ne Tabelle mit 5 Spalten und x Zeilen.
Dazu hab ich ne txt Datei wo sowas drinsteht:

Mike;Jegger;AD-G;+49134534561;786455637
Judith;Birgit;AD-G;+4913245561;7843255637

ich würde gerne jede Zeile in die Tabelle einlesen aber so, das immer ein Wort wir z.B. Mike unter Vorname eingetragen wird und dan Jegger in Nachnamen.
Ich weiß bis jetzt nur, wie man eine ganze Zeile einliest.
Is das irgendwie möglich, jeden Bereich (durch ; abgetrennt) nach der Reihe einzutragen?

schomal danke im voraus

mfg
Stefan
 

KrokoDiehl

Top Contributor
Java:
String line = myReader.readLine(); //oder so
String[] rowData = line.split(";");
...das ist einer der direktesten Wege. So bekommst du sogar schon ein Array für deine Tabelle.
 

MC_Basstard

Mitglied
Iwie funtzt des nich

Wenn ich des einfüge kommt immer Fehler weil ich n String [][] brauch. Wenn ich aber n zweites [] dahinter schreib will des line.split nimma.

Und irgendwie weiß ich nich wie ich da die txt Datei jetzt einlesen soll ^^

Ich weiß, dass man so ne ganze Zeile einlesen kann:

Java:
public void dateilesen() throws IOException
		{	
		    FileReader fr = new FileReader("1-Telefonbuch.txt");	
		    BufferedReader br = new BufferedReader(fr);	
			
		    String zeile = "";
			
		    while( (zeile = br.readLine()) != null )
		    	{
		    	text += zeile + "\n";
		    	}
			
		    br.close();
		}

aber ka wie ich des für meine Tabelle jetzt gebrauchen könnte.
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Erstelle vor dem Einlesen der Datei ein DefaultTableModel dem du ein leeres Datenarray und deine gewünschten Spaltenüberschriften gibst.
Wenn du deine Datei dann zeilenweise einliest, bekommst du mittels
Code:
split()
ein String-Array. Das kannst du direkt als Parameter in
Code:
addRow()
vom Modell nehmen.

In Pseudocode etwa so:
Java:
DefaultTableModel model = new DefaultTableModel(
    new Object[0][4],  //  4 == Spaltenzahl 
    new String[]{"Vorname", "Nachname", ...});
...
while ( (zeile = reader.readLine()) != null )
{
    String[] zeilenDaten = zeile.split(";");
    model.addRow(zeilenDaten);
}
...
JTable adressTabelle = new JTable(model);
// oder
meineTabelle.setModel(model);
 

MC_Basstard

Mitglied
sry iwie stell ich mich grad dumm xD

ich weiß nich wie ich des alles zambasteln muss
weil den code von dir beinhaltet keine datei von der eingelesen wird ich hab des dan mal so gemacht

Java:
public class Telefonbuch extends JFrame implements ActionListener										//
{										
	private static final long serialVersionUID = 15L;	
	private static JFrame frame = new JFrame();
	
	public Telefonbuch()
	{
		try {
			dateilesen();
			} 
		catch (Exception e){};
	}
		
		
		public void dateilesen() throws IOException
		{	
		
		DefaultTableModel model = new DefaultTableModel(
			new Object[0][4],  //  4 == Spaltenzahl 
			new String[]{"Vorname", "Nachname", "haus", "dach"});
		
		 	FileReader fr = new FileReader("1-Telefonbuch.txt");	
			BufferedReader br = new BufferedReader(fr);
			String zeile;
			while ( (zeile = br.readLine()) != null )
			{
			    String[] zeilenDaten = zeile.split(";");
			    model.addRow(zeilenDaten);
			}
			
			JTable adressTabelle = new JTable(model);

                             frame.pack();
 	                frame.setVisible( true );
 	                frame.setSize(800,300);	
 	                frame.setTitle("Telefonbuchtest");
 	                frame.setResizable(true);
	                }
             }


gehn tuts leider nich ^^
ich peil nich wie ich x Zeilen haben kann wos in jede Zeile nach der Reihe in jede Spalte des einträgt bis der gesammte Inhalt der txt Datei in der Tabelle is

tut mir leid das ich dir so mühe bereite ^^
 

MC_Basstard

Mitglied
habs jetzt hinbekommen ;)
mussts nur bisl umbaun war aba scho kurz davor das mein kopf geraucht hat xD
nochmal danke ^^

hier das Ergebnis:

Java:
public Telefonbuch()
	{
		try {
			dateilesen();
			} 
		catch (Exception e){};
	}
		
		public void dateilesen() throws IOException
		{	
		
		DefaultTableModel model = new DefaultTableModel(
			new Object[0][6],  //  6 == Spaltenzahl 
			new String[]{"Vorname", "Nachname","Abteilung","Handynummer","Nummer","abteilung"});
		    String[][] rowData = new String[100000][6];
		
		 	FileReader fr = new FileReader("C:/Temp/1-Telefonbuch.txt");	
			BufferedReader br = new BufferedReader(fr);
			String zeile;
			int i =0;
			while ( (zeile = br.readLine()) != null )
			{
			    String[] zeilenDaten = zeile.split(";");
			    rowData[i] = zeilenDaten;
			    i=i+1;
			}
			
			JTable adressTabelle = new JTable(model);
			
		
	String[] columnNames = {
		"Vorname", "Nachname","Abteilung","Handynummer","Nummer","abteilung"};
	
	frame.setDefaultCloseOperation(EXIT_ON_CLOSE );
	JTable table = new JTable( rowData, columnNames );
	frame.add( new JScrollPane(table) );
	frame.pack();
 	frame.setVisible( true );
 	frame.setSize(800,300);	
 	frame.setTitle("Telefonbuchtest");
 	frame.setResizable(true);
	}
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Kann es sein dass dein erster Versuch nur nicht ging, weil du dem Tabellenmodell gesagt hast, dass er vier Spalten hat, in der Datei aber 6 pro Zeile waren?
Wenn es da Unterschiede gibt, muss man die eben Abfangen. Ansonsten muss man das Tabellenmodell so deklarieren, dass es die erwartete Anzahl von Spalten hat und nicht einfach anderen Code kopieren ;)

Deine aktuelle Lösung bietet mit
Java:
String[][] rowData = new String[100000][6];
außerdem diverse Unschönheiten ;)
Was wenn in der Datei nur 20 Zeilen stehen? Dann hast du dennoch eine Tabelle mit 100000 Zeilen. Was wenn in der Datei aber 100001 Zeilen stehen?
Weiterhin ist "rowData" irreführend, weil es keine Zeilendaten sind, sondern die kompletten Tabellendaten.

In der ersten Lösung wurde die Tabelle adressTabelle außerdem nie dem Frame hinzufgefügt (via
Code:
add()
). Zumindest nicht im gepostetem Code.
 

MC_Basstard

Mitglied
äm ne an Spaltenzahl lags nich hab im nachhinein noch welche dazu gemacht.

Das Problem is, dass ich nich weiß wie viele Spalten in der txt-Datei sind. Deswegen hab ich einfach mal reingehaun. Habs jetzt scho auf 5000 gesenkt und is imma noch zu viel aber ich hab dann versucht des irgendwie so zu machen, dass wenn der Inhalt der Datei eingelesen is und nix mehr kommt, es nach dieser Tabellenzeile abbricht.
Leider ohne Erfolg.

Und ja des is n bischen verplant bin froh das ichs iwie hinbekommen hab xD
Ich wusst das irgendwas nich gebraucht wird hatte am anfang irgendwie Zwei strings offen die die Spalten erstellen aber wenn ich eins gelöscht hab gings iwie nich ka was da war aba so wies jetzt is passts fürs erste muss ja nich perfect sein besser machen kann ichs später immer noch.

Aber haste ne Idee wie ich desd machen könnte wenn ich nich weiß wie viele Spalten ich hab aber die Tabelle am Ende nur so viel Spalten haben soll wie benötigt werden für den Inhalt?
 

KrokoDiehl

Top Contributor
Zuerst einmal:
  • Zeile: Horizontale Daten in der Tabelle und repräsentieren typischerweise immer einen Datensatz.
  • Spalte: Vertikale Daten in der Tabelle und repräsentieren typischerweise alle Daten eines Typs.

Beispieldatei:
Code:
Müller;Hans;0190-222222;Musterhausen
Meier;Kurt;0177-8686868;Beispielbergen
Tänzer;Anneliese;01234-56789;Irgendwasfelden
Hier hast du drei Zeilen: Für Müller, Meier und Tänzer und vier Spalten: Nachname, Vorname, Telefonnr. und Ort.
Tabellarisch dargestellt:
Code:
Nachname  Vorname   Tel.         Ort
-----------------------------------------------
Müller    Hans      0190-222222  Musterhausen
Meier     Kurt      0177-8686868 Beispielbergen
Tänzer    Anneliese 01234-56789  Irgendwasfelden

Die Zahl der Spalten ist meistens fix, d.h. egal welchen Datensatz du hinzufügst, alle haben diese vier Spalten. Die Zahl der Zeilen indes ist unterschiedlich.

Wenn du nun dein Tabellenmodell (DefaultTableModel) mit
Code:
Object[0][4]
initialisierst, hast du eine leere Tabelle, aber eben vorgegeben, dass es vier Spalten geben soll.
Mit
Code:
addRow()
fügst du dann immer eine Zeile hinzu. So hast du am Ende genau soviele Zeilen, wie in der Datei waren. Keine mehr und keine weniger.

Wenn ich hier jetzt mit den Zahlen 3 und 4 hantiere, darfst du nicht einfach so übernehmen, sondern musst schauen was bei dir jeweils passt.

Wie gesagt, was mir an deinem ersten Versuch aufgefallen ist, ist dass du meine Zahl 4 (für Spalten) einfach übernommen hast.
Wenn
Code:
String.split(";")
nun ein
Code:
String[6]
zurückliefert, das Tabellenmodell aber ein
Code:
String[4]
erwartet, gibt es da bestimmt Probleme.
Außerdem wurde die Tabelle adressTabelle nie in ein Layout gesteckt, was bedeutet dass sie nicht angezeigt wird. Sprich ein
Java:
frame.add( new JScrollPane( adressTabelle ) );
fehlte.
 

MC_Basstard

Mitglied
wenn ich des

Java:
frame.add( new JScrollPane( adressTabelle ) );

jetzt aber dazuschreib, befindet sich die eigentliche Tabelle mit den Daten in einer anderen Tabelle die eine Spalte A hat.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Daten in eine JList einfügen Java Basics - Anfänger-Themen 6
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
U daten aus einer datenbank aus lesen und einfügen Java Basics - Anfänger-Themen 2
E Daten in JTable einfügen Java Basics - Anfänger-Themen 6
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
R Inventar und Items auf ein 2D ArrayFeld einfügen Java Basics - Anfänger-Themen 2
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
O BinärBaum einfügen Java Basics - Anfänger-Themen 13
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
S Elemente in Liste einfügen Java Basics - Anfänger-Themen 2
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
T Variablen “ in String einfügen Java Basics - Anfänger-Themen 1
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
R Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe! Java Basics - Anfänger-Themen 15
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Tausende Wörter in Arrays automatisch einfügen Java Basics - Anfänger-Themen 10
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
J Scroll-Leiste einfügen Java Basics - Anfänger-Themen 12
U Sound einfügen Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
J Objecte in TreeSet einfügen klappt nicht Java Basics - Anfänger-Themen 5
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
S Bild einfügen Java Basics - Anfänger-Themen 16
D Taschenrechnerereignisse einfügen Java Basics - Anfänger-Themen 18
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
W Listenelement einfügen Java Basics - Anfänger-Themen 9
P OOP Eingabevariablen der Klasse Raum in der Methode addEvent ans Ende einer ArrayList einfügen Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
A Objekte in eine Liste einfügen Java Basics - Anfänger-Themen 7
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
F Collections Sortierung und Einfügen von Elementen Java Basics - Anfänger-Themen 1
K Erste Schritte Classe in andere Einfügen?? Java Basics - Anfänger-Themen 12
P Klasse in Klasse einfügen (arrayliste) Java Basics - Anfänger-Themen 7
F Bibliotheken einfügen ??? Java Basics - Anfänger-Themen 2
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
Q Erste Schritte In CharArrayWriter Zeichen an Stelle einfügen Java Basics - Anfänger-Themen 4
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
N JTable - Zellfarben ändern, GUI-Komponenten in Zellen einfügen Java Basics - Anfänger-Themen 5
B Ordner in jar dateien einfügen Java Basics - Anfänger-Themen 4
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
J Bild einfügen Java Basics - Anfänger-Themen 3
S Musik einfügen funktioniert noch nicht Java Basics - Anfänger-Themen 6
K paint() mit einfügen Java Basics - Anfänger-Themen 14
A Sortiertes Einfügen in Liste Java Basics - Anfänger-Themen 2
B org.apache.commons.... Folder in Projekt einfügen Java Basics - Anfänger-Themen 6
Kenan89 String in ObjectList einfügen Java Basics - Anfänger-Themen 2
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
A SwingX in Eclipse einfügen Java Basics - Anfänger-Themen 5
B Einfügen von Dateien Java Basics - Anfänger-Themen 10
M Java String " einfügen Problem Java Basics - Anfänger-Themen 2
M Video in ClassLoader einfügen Java Basics - Anfänger-Themen 7
S Itext und eine neue Zeile einfügen Java Basics - Anfänger-Themen 2
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
D Werte aus Excel in Diagramm einfügen Java Basics - Anfänger-Themen 6
K Fehler beim Einfügen eines Programm Icons Java Basics - Anfänger-Themen 6
Binary.Coder Vor und nach jeder Codezeile etwas einfügen Java Basics - Anfänger-Themen 3
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
D Input/Output Zeilen aus txt-datei in Java-Liste einfügen Java Basics - Anfänger-Themen 9
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
T Bild in JFrame einfügen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben