Abbruch bei nicht initalisierten Daten

Status
Nicht offen für weitere Antworten.

redbomber

Bekanntes Mitglied
Hi zusammen,
ich habe mal wieder eine Frage.

Dieses mal geht es um folgendes.

Wenn ich meine JTable initialisiere, bekomme ich zugriff auf die Daten.
Also merke ich erst bei der Initialisierung der JTable, dass etwas mit den Daten nicht stimmt.
Wenn etwas nicht stimmt bricht bisher alles mit einer nullpointer exception ab.

Jetzt wollte ich wissen ob ich irgendwie die Initialisierung "anhalten" kann und stattdessen ein neues Frame öffnen,
welches dem Anwender sagt, dass er was falsch gemacht hat.
Aber wie gehts dann weiter? Die Nullpointer Exception kommt dann ja trotzdem.

Versuche ich halt in der Tabelle alle exceptions zu beheben, dann habe ich überall zusätzliche Anfragen ob die Daten schon gesetzt sind...
 
ja klaro,
ich verstehs auch nich so ganz 😉

Also angenommen ich hätte Daten vorliegen und müsste eine Tabelle damit befüllen.
Dann könnte ich einfach prüfen ob die Daten korrekt sind und je nachdem die Tabelle initialisieren oder auch nicht.

Bei mir ist nun so:
Ich komme erst bei der Initialisierung der JTable an meine Daten. (Da meine Table eine Klasse implementieren muss, in einer Methode bekomme ich dann Datenzugriff)
Also kann ich erst bei der Initialisierung die Daten prüfen.
Wenn die Daten falsch sind würde ich gerne das ganze beenden und ein Fenster anzeigen mit einer Fehlermeldung.


Bei mir fängt jedoch dann das große Durcheinander erst an.
Überall Nullpointer-exceptions, so etwa von meinem Controller der auf Events von meiner JTabel reagiert, sowie Fehler bei menen TableCellRenderer, der auf Eigenschaften der Tabelle zugreifen möchte.
 
hm ich glaub du müsstest die korrektheit der daten nich in der table prüfen sondern ausgehend vom controller oder direkt im datenmodell. die tabelle selbst bekommt die daten ja nur übergeben und zeigt die je nach art und umfang an, warum sollte man da prüfen ob die daten korrekt sind?!

generell hab ich ne zentrale klasse zur datenhaltung, welche bei manipulationen prüft ob die in ordnung sind oder nicht, bzw übernimmt das dann die eigentliche datenklasse teilweise selbst.

Die tabelle kann nur anzeigen was da ist, wenn keine daten korrekt vorliegen bleibt die tabelle einfach leer.

was auch nicht passieren sollte ... das bereitstellen von X datensätzen, welche allerdings nicht vorinitialisiert sind. Wenn du dann die alle abgreifst dann hast lustige Nullpointer ja.

aber das is alles nur ins blaue geraten.
 
Du könntest mit TryCatch die NullPointerException abfangen und statt das du dann im Catch den fehler einfach so auf der Konsole ausgibst, erstellste ein neues Fenster in dem das ausgeben wird.

z. B.:

deineMethode(String deineUebergabe){

try{
deinCode;
}catch(NullpointerException e){
oeffneFenster(e.getMessage);
}

}

sowas in der Art könnte ich mir vorstellen.
 
also erst mal sorry für meine ungenaue Erklärung

Also jetzt habe ich folgende Lösung:

In meiner MyComponent Klasse (Extends JPanel) wird die Table, der Controller, die ScrollPane usw. initialisiert.
Bei der Initialisierung der Table bekomme ich mit ob die Daten korrekt sind.
Mein DatenManager wird also in der initialisierung der Table mit den Daten "gefüttert".
Ich setze im DatenManager einfach ein Flag ob die Daten gesetzt wurden oder nicht.
Falls nicht, dann überspinge ich die INitialisierung aller weiteren Komponenten und füge dann einfach KEINE Komponente zu meiner MyComponent hinzu.

Und siehe da, es öffnen sich einfach ein leeres Fenster, in das ich dann noch einen Text schreiben kann.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben