Problem mit Autoverwaltungsprogramm

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo an alle!

Ich programmier grad an einem Autoverwaltungsprogramm (is nur zum Spass um meine Fähigkeiten in Java zu erweitern *g*).

Hab nun folgendes Problem:
Wie aus der Klasse Datenbank.java zu erkenne ist, steuert sie das ein- und auslesen der "Datenbank" (eine Textdatei mit der Endung avd; momentan funktioniert nur das auslesen).
Momentan liest sie nur aus der vorhandenen Datei versuch.avd die Daten aus.

Code:
public class Datenbank {

    /** Liest die DB ein und speichert sie in einem Vektor */
    public Vector liesEin() {
        
        String line;
        Vector db = new Vector();

        try {
          LineNumberReader reader = new LineNumberReader(
                                      new FileReader( "C:\\versuch.avd") );
          while ( ( line = reader.readLine() ) != null ) {
          
          /* Wie ich die einzelnen Strings hohle:
           * ich bestimme die einzelnen Kategorien (Marke, Modell etc.), hohle mir deren Index (= Position, 
           * wo dieses Wort beginnt), zähle die Anzahl der Buchstaben plus den ":" hinzu (also 5 + 1 bei "Marke");
           * bin somit am Anfang des gewünschten Eintrages; lese diesen bis ";" (= markiert das Ende des Eintrages)
           * und speichere ihn in den Vektor db 
           */
              
             StringBuffer buffer = new StringBuffer(line);
             
             int markeIndex = buffer.indexOf("Marke:")+6;
             int modellIndex = buffer.indexOf("Modell:")+7;
             int bjIndex = buffer.indexOf("Baujahr:")+8;
             int psIndex = buffer.indexOf("PS:")+3;
             
             String marke = buffer.substring( (markeIndex),  buffer.indexOf(";", markeIndex) );
             String modell = buffer.substring( (modellIndex), buffer.indexOf(";", modellIndex) );
             String bj = buffer.substring( (bjIndex), (bjIndex+4) ); /*hier nicht wie oben da es nur 
                                                                      *4-stellige Jahreszahlen gibt */
             String ps = buffer.substring( (psIndex), buffer.indexOf(";", psIndex) );
             
             db.add(marke);
             db.add(modell);
             db.add(bj);
             db.add(ps);
          }
          
          reader.close();
        } 
        catch (IOException e) {
          System.out.println("\tFehler beim Lesen der Datei!\n");
          e.printStackTrace();
        }
        
        return db;
    }
}

In dem Fenster (Hauptfenster.java) erzeuge ich einen JTable und will nun, dass gleich am Start die Datenbak eingelsen und dargestellt wird.

Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class HauptFenster extends JFrame {    
    
    public static JTable liste;
    
    public static JButton eintragBearbeiten;
    public static JButton eintragLöschen;
    
	public HauptFenster() {
		Container cp = getContentPane();
		
		
		//die Liste zum Anzeigen der Einträge
		
		Vector spaltenNamen = new Vector();
            spaltenNamen.add("Marke");
            spaltenNamen.add("Modell");
            spaltenNamen.add("Baujahr");
            spaltenNamen.add("PS");
		
        
        Datenbank db = new Datenbank();
        Vector daten = db.liesEin();
        
			liste = new JTable(daten, spaltenNamen);
			
				liste.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
			
			JScrollPane sp = new JScrollPane(liste);
			
			cp.add(sp, BorderLayout.CENTER);
		
   usw.

Jetzt meine Frage: Warum bekomme ich diese Fehlermeldung, wenn ich es ausführe?

java.lang.ClassCastException
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)
at javax.swing.JTable.<init>(Unknown Source)
at Ausprobiertes.AutoVerwaltung.HauptFenster.<init>(HauptFenster.java:53)
at Ausprobiertes.AutoVerwaltung.AutoVerwaltung$1.run(AutoVerwaltung.java:27)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



Vielen Dank im Voraus
 
R

Roar

Gast
Anonymous hat gesagt.:
java.lang.ClassCastException
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)
at javax.swing.JTable.<init>(Unknown Source)
at Ausprobiertes.AutoVerwaltung.HauptFenster.<init>(HauptFenster.java:53)
at Ausprobiertes.AutoVerwaltung.AutoVerwaltung$1.run(AutoVerwaltung.java:27)

da siehst du doch was für eine exception auftritt und wo sie auftritt.
hier: http://www.java-forum.org/de/viewtopic.php?t=3976
 
R

Roar

Gast
nein, nur weil die exception in einer methode des models auftritt, wurde sie doch indirekt durch die initialisierung der JTable eingeleitet. aber ohne (relevanten) code kann man so nix sagen
 
B

bygones

Gast
muss der datenvector nicht ein vector von vectoren sein ? (ohne Gewähr). d.h. jeder Eintrag im datenvector ist wieder ein vector, der die daten für die aktuelle Zeile hält....

dann wäre es zu erklören weil du nur Strings reinhaust .....
 

specktakeles

Mitglied
In Java gibt es ein Konzept, das sich Definite Assignment nennt. Gemeint ist damit die Tatsache, daß jede lokale Variable vor ihrer ersten Verwendung definitiv initialisiert sein muß. Das wünscht sich eigentlich zwar auch jeder Programmierer, aber in Java wird dies durch den Compiler sichergestellt! Dazu muß im Quelltext eine Datenflußanalyse durchgeführt werden, die jeden möglichen Ausführungspfad von der Deklaration einer Variablen bis zu ihrer Verwendung ermittelt und sicherstellt, daß kein Weg existiert, der eine Initialisierung auslassen würde.

Die folgende Methode Test läßt sich beispielsweise deshalb nicht fehlerfrei kompilieren, weil k vor der Ausgabeanweisung nicht initialisiert wird, wenn i kleiner 2 ist:

001 public static void Test(int i)
002 {
003 int k;
004 if (i >= 2) {
005 k = 5;
006 }
007 System.out.println(k);
008 }

dies habe ich aus dem onlinebuch "Handbuch der Javaprogrammierung" und versteh diesen fehler mit initialisieren nicht. kann mir das einer simpler erklären
 

foobar

Top Contributor
Das bedeutet ganz einfach, daß du alle deine lokalen Variablen initialisieren mußt.
Code:
public static void Test(int i)
{
int k;
if (i >= 2) 
{
    k = 5; // wenn i >= 2 ist, wird k mit dem wert 5 initialisiert
}
// wenn k nicht >= 2 ist, ist k nicht initialisert worden und fuehrt zu einem Compiletimeerror
System.out.println(k);
}
Lösung:
Code:
public static void Test(int i)
{
int k = 0; // k initialisieren
if (i >= 2) 
{
    k = 5;
}
System.out.println(k);
}
 

specktakeles

Mitglied
hier wird als ergebnis
a == b liefert false und
a != b liefert true.
zeigen hier a und b nicht auf das selbe objekt und müsste somit genau das gegenteil anzeigen?


Code:
public class operat
{
  public static void main(String[] args)
  {
    String a = new String("hallo");
    String b = new String("hallo");
    System.out.println("a == b liefert " + (a == b));
    System.out.println("a != b liefert " + (a != b));
  }
}
[/code]
 

foobar

Top Contributor
String a und b zeigen auf das selbe Objekt und sind equal.
Code:
String a = new String("hallo");
String b = a;

String a und b zeigen auf unterschiedliche Objekte und sind equal.
Code:
String a = new String("hallo");
String b = new String("hallo");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
K Threads RAM Problem Allgemeine Java-Themen 20
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
C Int Problem Allgemeine Java-Themen 8
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
C Webseiten Programm problem Allgemeine Java-Themen 5
M LocalDate Problem Allgemeine Java-Themen 4
J "Problem Objektorientierung" Allgemeine Java-Themen 20
geekex Problem Meldung! Was tun?! Allgemeine Java-Themen 19
T Klassen Override Problem Allgemeine Java-Themen 7
L Unbekanntes Problem Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
F HTTPS Zertifikat Problem Allgemeine Java-Themen 3
M OpenCV KNearest Problem Allgemeine Java-Themen 0
Tommy Nightmare Project Euler: Problem 22 Allgemeine Java-Themen 2
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
RalleYTN META-INF/services Problem Allgemeine Java-Themen 3
F Java Mail Problem: Authentifizierung wird nicht immer mitgeschickt Allgemeine Java-Themen 1
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6

Ähnliche Java Themen


Oben