Fehler Inhalt von JTable wird gelöscht

neela

Bekanntes Mitglied
Hallo

ich sehe den Wald vor lauter Bäumen nicht.
Ich habe ein Dialog mit einem JTable, welches der Nutzer befüllen soll.
Und mit Klick auf Ok sollen dann die Daten übernommen und der Dialog geschlossen werden.

Hab das nun zig mal getestet funktioniert bei mir fehlerfrei.
Bei einem Kollegen wird beim Klick auf OK das JTable und alles Weiteren Felder gelöscht und Dialog bleibt erhalten. Dies passiert sagen wir mal bei jeden 3. Mal

Java:
package nutzerschnittstelle;

public class GebDialog extends JDialog {
	GebDialog gebdia = this;
	JTextField aktenTxt = new JTextField();
	JComboBox grundCombo = new JComboBox();

	JTable gebTab = new JTable();
	JButton endeBtn = new JButton("Abbruch");
	JButton okBtn = new JButton("OK");
	JButton ladenBtn = new JButton("Laden");
	Hauptfenster hauptfenster;
	HashMap<String, Gebaeude> geb = new HashMap<String, Gebaeude>();
	DefaultTableModel model;

	/**
	 *Dialogoberfläche wird erstellt.
	 */
	private void initComponents() {
// aus Platzgründen entfernt
	}


	public class OkListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {

			if (hauptfenster.xmlField.getText().equals("")
					&& aktenTxt.getText().equals(""))
				JOptionPane.showMessageDialog(gebdia,
						"Bitte geben Sie das Aktenzeichen an ",
						"Fehlerhafte Angaben", JOptionPane.INFORMATION_MESSAGE);
			// aktuallisiert Tabelle (falls letzte Eingabe nicht mit enter
			// abgeschlossen ist )
			else {
				TableCellEditor tce = null;
				if (gebTab.isEditing()) {
					tce = gebTab.getCellEditor();
				}
				if (tce != null) {
					tce.stopCellEditing();
				}
				Bearbeiter bearbeiter = new Bearbeiter();
				if (hauptfenster.xmlField.getText().equals("")) {

					bearbeiter.setAktenzeichen(aktenTxt.getText());
					bearbeiter.setEmail((String) hauptfenster.getProperties()
							.get("E-Mail"));
					bearbeiter
							.setGrund((String) (grundCombo.getSelectedItem()));
					bearbeiter.setName((String) hauptfenster.getProperties()
							.get("Name"));
					bearbeiter.setTel((String) hauptfenster.getProperties()
							.get("Tel"));
				}

				// Tabelle wird solang ausgewertet bis eine Zeile komplett leer
				// ist
				int zeile = 0;
				boolean fehler = false;
				String fehlerzeileString = "";
				// Auswertung der einzelnen Zellen
				while (zeile < model.getRowCount()
						&& !(gebTab.getValueAt(zeile, 0).equals(""))
						|| !(gebTab.getValueAt(zeile, 1).equals(""))
						|| !(gebTab.getValueAt(zeile, 2).equals(""))
						|| !(gebTab.getValueAt(zeile, 3).equals(""))
						|| !(gebTab.getValueAt(zeile, 4).equals(""))
						|| !(gebTab.getValueAt(zeile, 5).equals(""))
						|| !(gebTab.getValueAt(zeile, 6).equals(""))
						|| !(gebTab.getValueAt(zeile, 7).equals(""))
						|| !(gebTab.getValueAt(zeile, 8).equals(""))
						|| !(gebTab.getValueAt(zeile, 9).equals(""))) {
					String aka = (String) gebTab.getValueAt(zeile, 0);
					String name = (String) gebTab.getValueAt(zeile, 2);
					if ((String) gebTab.getValueAt(zeile, 1) != null)
						name = (String) gebTab.getValueAt(zeile, 1) + " "
								+ (String) gebTab.getValueAt(zeile, 2);

					if (!(aka != null))
						name = aka + " " + name;
					String str = (String) gebTab.getValueAt(zeile, 3) + " "
							+ (String) gebTab.getValueAt(zeile, 4);

					String ort = (String) gebTab.getValueAt(zeile, 5) + " "
							+ (String) gebTab.getValueAt(zeile, 6);
					String gmk = (String) gebTab.getValueAt(zeile, 7);
					String gemarkungsName = (String) gebTab
							.getValueAt(zeile, 8);
					String flst = (String) gebTab.getValueAt(zeile, 9);

					if (name.equals("") || str.equals("") || ort.equals("")
							|| gmk.equals("") || gemarkungsName.equals("")
							|| flst.equals("")) {
						int fehlerZeileInt = zeile;
						fehlerZeileInt++;
						if (fehlerzeileString == "")
							fehlerzeileString = String.valueOf(fehlerZeileInt);
						else
							fehlerzeileString = fehlerzeileString + " und "
									+ String.valueOf(fehlerZeileInt);

						fehler = true;
					} else {
						// Überprüft ob Eigentümer bereits vorhanden ist
						Gebaeude gebCheck = geb.get(name);
						if (gebCheck == null) {
							HashMap<String, Gemarkung> gmkMap = new HashMap<String, Gemarkung>();
							Gemarkung gemarkung = new Gemarkung(gmk,
									gemarkungsName, flst);
							gmkMap.put(gmk, gemarkung);
							Gebaeude gebaeude = new Gebaeude(name, str, ort,
									gmkMap, false, bearbeiter);

							geb.put(name, gebaeude);

						} else {

							// überprüfen ob Anschrift übereinstimmt
							if (!((gebCheck.getStr() + gebCheck.getOrt())
									.equals(str + ort))) {
								DoppelteAnschrift doppelt = new DoppelteAnschrift(
										hauptfenster, true,
										(gebCheck.getStr() + " "
												+ gebCheck.getOrt() + " "),
										(str + " " + ort + " "), name);
								int btn = doppelt.getGroup();

								if (btn == 1) {
									str = gebCheck.getStr();
									ort = gebCheck.getOrt();
								}
							}
							HashMap<String, Gemarkung> gmkMap = gebCheck
									.getGemarkung();
							// Prüfen ob unter dem Beteiligten schon die
							// Gemarkung vorhanden ist
							// wenn nicht wird sie neu angelegt incl flst
							boolean flstMz = false;
							if (gmkMap.get(gmk) == null) {
								flstMz = (true);
								Gemarkung gemark = new Gemarkung(gmk,
										gemarkungsName, flst);
								gmkMap.put(gmk, gemark);

							} else {
								// es wird geprüft ob flst schon zu der
								// Gemarkung
								// exestiert wenn nicht wird es angelegt
								Gemarkung gemark = gmkMap.get(gmk);
								String flurstk = gemark.getFlst();
								StringTokenizer tokenizer = new StringTokenizer(
										flurstk, ",");
								boolean flstExist = false;

								while ((tokenizer.hasMoreTokens())
										&& flstExist == false) {
									// flst bereits vorhanden
									if ((tokenizer.nextToken())
											.replace(" ", "").equals(flst)) {
										flstExist = true;
									}
								}
								// flst noch nicht vorhanden
								if (flstExist == false) {
									flstMz = true;
									gemark.setFlst(flurstk + ", " + flst);
									gmkMap.remove(gmk);
									gmkMap.put(gmk, gemark);
								}
							}
							Gebaeude gebaeude = new Gebaeude(name, str, ort,
									gmkMap, flstMz, bearbeiter);
							geb.remove(name);
							geb.put(name, gebaeude);
						}
					}
					zeile++;

				}
				if (fehler == false) {
					hauptfenster.setGeb(geb);
					hauptfenster.setGebCheck(true);
					setVisible(false);
					dispose();

				} else
					JOptionPane.showMessageDialog(gebdia,
							"Bitte überprüfen Sie die Zeile "
									+ fehlerzeileString
									+ " und ergänzen Sie die Pflichtelemente",
							"Fehlerhafte Angaben",
							JOptionPane.INFORMATION_MESSAGE);
			}
		}
	}
}

Nun stell ich mir die Frage wieso der Fehler auftritt und wie ich Ihnen beseitigen kann.???:L
Ich bin für jeden Rat dankbar
 

bERt0r

Top Contributor
Also abgesehen davon dass ich keine Ahnung habe was dein Listener überhaupt machen soll:
Java:
 while (zeile < model.getRowCount()
                        && !(gebTab.getValueAt(zeile, 0).equals(""))
                        || !(gebTab.getValueAt(zeile, 1).equals(""))
                        || !(gebTab.getValueAt(zeile, 2).equals(""))
Das kann ja so nicht stimmen, ich schätze da hast du eine Klammer vergessen, ich schätze nicht dass du sowas erreichen willst:
Java:
while(a && b || c || d)
 

neela

Bekanntes Mitglied
Die Schleife stimmt eigentlich

der Listener soll die JTable so lange auswerten bis in der Tabelle alle Spalten leer sind anschließend wird überprüft ob die Pflichtelemente (Spalte 3- 10 ) immer ausgefüllt sind, wenn nicht wird eine Meldung angezeigt damit man das nachholen kann. Anschließend werden ein paar weitere Tests gemacht z.B. ob bereits der Name vorhanden ist. Am Ende werden die Daten dann in eine Hashmap gepackt und der Dialog soll geschlossen werden.

Nach dem ich nun festgestellt habe das Programm auf meim Lapi auch net richtig will, konnte ich nun den Fehler etwas analysieren.
Er löscht die Daten nicht sondern öffnen noch einmal den Dialog. Den Grund dafür hab ich leider noch nicht gefunden ???:L
 

neela

Bekanntes Mitglied
Der Grund für das nochmalige öffnen liegt an den beiden Zeilen
Code:
hauptfenster.setGeb(geb);
     hauptfenster.setGebCheck(true);
in der If- Abfrage
[JAVA=180] if (fehler == false) {
hauptfenster.setGeb(geb);
hauptfenster.setGebCheck(true);
setVisible(false);
dispose();
[/code]


Nun folgen die Aufgerufenen Methode aus dem Hauptfenster
Java:
	public void setGeb(HashMap<String, Gebaeude> geb) {
		gebCheck.setSelected(true);
		this.geb = geb;
	}

	public void setGebCheck(boolean gebCheck) {
		this.gebCheck.setSelected(gebCheck);
	}



Im Hauptfenster gibt es auch einen Itemlistenenr der an eine Checkbox angebunden ist.
Und wenn diese Checkbox angeklickt wird, soll der oben genannte Dialog geöffnet werden.
Nun trat im Test das Problem auf das nach dem der Dialog beendet worden ist das Häckchen der Checkbox wieder weg war, aus diesem Grund hatte ich
Code:
gebCheck.setSelected(true);
eingefügt.
Aber dadurch ist es ja logisch das der Listener wieder aufgerufen wird. Wie könnte ich das bewerkstellig das nach dem Schließen des Dialoges die Checkbox immer noch true ist, und ich somit aus den Teufelskreis rauskomme. Mir fehlen gerade die Ideen

GebListener aus dem Hauptfenster
Java:
	public class GebListener implements ItemListener {
		public void itemStateChanged(ItemEvent ie) {

			if (getGebCheck() == true) {
				new GebDialog(hauptfenster, hauptfenster, true);
			}
		}
	}
 
Zuletzt bearbeitet:

neela

Bekanntes Mitglied
Meine Momentane Lösung ist ich verzichte auf den ItemListener und regel das mit einer Abfrage die auf gerufen wird wenn ein anderer Button geklickt wird.
Da bleibem auch alle Häckchen dort wo sie sein sollen.
Trotzdem würde es mich interessieren wieso das mit dem ItemListener net so wollte
 

bERt0r

Top Contributor
Das könnte man vielleicht, wenn man deinen Code lesen könnte. Spätestens bei "flurstk" und "gemark" versteh zumindest ich nur mehr Bahnhof.
Ausserdem ist deine Herangehensweise falsch. Wenn du nur eine Validierung deiner Tabledaten machen willst, solltest du während dem Validieren daran keine Änderungen durchführen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
J Fehler bei jFame.setTitle() AWT, Swing, JavaFX & SWT 8
thor_norsk SpringBoot-Fehler AWT, Swing, JavaFX & SWT 7
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
parrot JavaFX Fehler AWT, Swing, JavaFX & SWT 4
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
A eine Fehler AWT, Swing, JavaFX & SWT 9
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
E Fehler bei Button AWT, Swing, JavaFX & SWT 1
L Unbekannter Fehler AWT, Swing, JavaFX & SWT 13
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
I Fehler bei Alert AWT, Swing, JavaFX & SWT 6
J Fehler bei PixelColor erkennung AWT, Swing, JavaFX & SWT 4
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
V Fehler bei Würfelsimulator GUI AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
M Swing finde den fehler nicht AWT, Swing, JavaFX & SWT 9
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
D Unlogischer Fehler? AWT, Swing, JavaFX & SWT 2
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
E Warum macht die einfache Animation einen kleinen Fehler? AWT, Swing, JavaFX & SWT 14
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
H GUI-Textausgabe Fehler AWT, Swing, JavaFX & SWT 5
S String is null Fehler AWT, Swing, JavaFX & SWT 2
P Swing GroupLayout() Fehler? AWT, Swing, JavaFX & SWT 3
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
N Touchscreen-Scrollen, wo liegt der Fehler? AWT, Swing, JavaFX & SWT 3
S Fehler beim Zweites 3D Bild AWT, Swing, JavaFX & SWT 2
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
M GEF tutorial Fehler finden AWT, Swing, JavaFX & SWT 4
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Fehler bei Arrayübergabe an JComboBox AWT, Swing, JavaFX & SWT 10
J Fehler beim Einklappen eines Trees AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Fehler beim Laden eines Bildes AWT, Swing, JavaFX & SWT 25
S LayoutManager Fehler gesucht 18.6.2011 AWT, Swing, JavaFX & SWT 4
C Fehler nur bei manchen Usern AWT, Swing, JavaFX & SWT 8
Screen Fehler bei Get-Methode für ArrayList AWT, Swing, JavaFX & SWT 8
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Fehler beim Überzeichnen von Linien AWT, Swing, JavaFX & SWT 11
E Swing Fehler nach Befüllen einer JTable mit gesetzem Rowsort?! AWT, Swing, JavaFX & SWT 10
P Swing Misteriöser Fehler JTable AWT, Swing, JavaFX & SWT 5
Y Swing JPasswordField Fehler AWT, Swing, JavaFX & SWT 14
A Swing Unknown Source Fehler AWT, Swing, JavaFX & SWT 9
N Fehler bei Grouplayout AWT, Swing, JavaFX & SWT 17
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
A Tabellen Überschriften ändern -setColumnIdentifiers()- Fehler AWT, Swing, JavaFX & SWT 7
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
D Swing Verwirrender Fehler AWT, Swing, JavaFX & SWT 7
J Fehler in fillRoundRect AWT, Swing, JavaFX & SWT 2
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
W fehler jedoch ka wo AWT, Swing, JavaFX & SWT 14
F Fehler in der Startklasse AWT, Swing, JavaFX & SWT 13
A Fehler bei der Parametereingabe? AWT, Swing, JavaFX & SWT 16
P finde den Fehler im JTable nicht AWT, Swing, JavaFX & SWT 2
Spin Fehler in Vergleich AWT, Swing, JavaFX & SWT 6
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
Dragonfire ZoomImage flackert -> Fehler: repaint-Aufruf [gelöst] AWT, Swing, JavaFX & SWT 5
T Invalid Range - Fehler bei TableRowSorter / Tabelle AWT, Swing, JavaFX & SWT 17
DasDogma Fehler bei getText() AWT, Swing, JavaFX & SWT 10
I Fehler bei verschachtelten JScrollPanes AWT, Swing, JavaFX & SWT 2
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
GilbertGrape Fehler bei HTML in JTextPane AWT, Swing, JavaFX & SWT 2
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
D Fehler bei Button Array AWT, Swing, JavaFX & SWT 8
P Fehler beim Einlesen eines JTextFields AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
M Fehler mit Jigloo AWT, Swing, JavaFX & SWT 3
M setColor mit Fehler cannot fiend symbol (java.awt.Color) AWT, Swing, JavaFX & SWT 2
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
R JComboBox Fehler AWT, Swing, JavaFX & SWT 7
B NPE-Fehler AWT, Swing, JavaFX & SWT 11
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
R setIcon löst Fehler aus AWT, Swing, JavaFX & SWT 4
B Durch Auslesen der Zwischenablage folgt Fehler im Excel AWT, Swing, JavaFX & SWT 2
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
D Fehler bei JTable AWT, Swing, JavaFX & SWT 8
S TextField fehler AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben