NullpointerException wegen wahrscheinlichem Multithreading

Status
Nicht offen für weitere Antworten.
L

lspagl

Gast
Code:
package gui;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import java.awt.Frame;
import javax.swing.JDialog;
import java.awt.GridLayout;
import javax.swing.JSplitPane;
import java.awt.GridBagLayout;
import java.awt.Dimension;
import javax.swing.JComboBox;
import javax.swing.JCheckBox;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Vector;
import klassen.Tools;

import klassen.Datensatz;

public class DsBearbeiten extends JDialog implements ItemListener {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;
	private JSplitPane jSplitPane = null;
	private JPanel panelPunkte = null;
	private JPanel panelWerte = null;  
	private JComboBox comboStdPktAlt = null;
	private JComboBox comboZielPktAlt = null;
	private JComboBox comboStdPktNeu = null;
	private JComboBox comboZielPktNeu = null;
	private JCheckBox cBoxLage1 = null;
	private JCheckBox cBoxLage2 = null;
	private JCheckBox cBoxAlle = null;
	private JButton butSpeichern = null;
	private JButton butLoeschen = null;
	private JButton butSchliessen = null;
	
	private Degas owner = null;
	private DsBearbeiten myself;
	private boolean wait = false;
	private DefaultComboBoxModel stdPktAlt = new DefaultComboBoxModel();
	private DefaultComboBoxModel stdPktNeu = new DefaultComboBoxModel();
	private DefaultComboBoxModel zielPktAlt = new DefaultComboBoxModel();
	private DefaultComboBoxModel zielPktNeu = new DefaultComboBoxModel();
	
//	private Vector<Object> stdPkt = new Vector<Object>();
//	private Vector<Object> zielPkt = new Vector<Object>();

	/**
	 * @param owner
	 */
	public DsBearbeiten(Degas owner) {
		super(owner);
		this.owner = owner;
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.myself = this;
		this.setSize(790, 272);
		this.setLocation(Tools.bildMitte(this));
		this.setResizable(false);
		this.setTitle("Datensatz bearbeiten");
		this.setModal(true);
		this.setContentPane(getJContentPane());
//		this.buttonGrösse();
		this.fillWerte();
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(getJSplitPane(), BorderLayout.CENTER);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jSplitPane	
	 * 	
	 * @return javax.swing.JSplitPane	
	 */
	private JSplitPane getJSplitPane() {
		if (jSplitPane == null) {
			jSplitPane = new JSplitPane();
			jSplitPane.setDividerSize(3);
			jSplitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
			jSplitPane.setTopComponent(getPanelPunkte());
			jSplitPane.setBottomComponent(getPanelWerte());
			jSplitPane.setDividerLocation((this.getHeight()/8)*3);
		}
		return jSplitPane;
	}

	/**
	 * This method initializes panelPunkte	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPanelPunkte() {
		if (panelPunkte == null) {
			panelPunkte = new JPanel();
			panelPunkte.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, this.getWidth()/2));
			panelPunkte.setLayout(new GridLayout(3, 3, 10, 10));
			panelPunkte.add(new JLabel());
			panelPunkte.add(new JLabel("Standpunkt", SwingConstants.CENTER));
			panelPunkte.add(new JLabel("Zielpunkt", SwingConstants.CENTER));
			panelPunkte.add(new JLabel("aktuelle", SwingConstants.RIGHT));
			panelPunkte.add(getComboStdPktAlt(), null);
			panelPunkte.add(getComboZielPktAlt(), null);
			panelPunkte.add(new JLabel("neue", SwingConstants.RIGHT));
			panelPunkte.add(getComboStdPktNeu(), null);
			panelPunkte.add(getComboZielPktNeu(), null);
			
		}
		return panelPunkte;
	}

	/**
	 * This method initializes panelWert	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getPanelWerte() {
		if (panelWerte == null) {
			String[] text = {"Horizontalwinkel", "Vertikalwinkel", "Hz-Strecke", "Höhenunterschied", "Schrägstrecke", "Instrumentenhöhe\n[m]", "Reflektorhöhe\n[m]"};
			GridBagConstraints constraint = new GridBagConstraints();
			constraint.insets = new Insets(5, 10, 5, 10);
			panelWerte = new JPanel();
			panelWerte.setLayout(new GridBagLayout());
			constraint.gridy = 0;
			for (int i = 0; i < text.length; i++) {
				constraint.gridx = i+1;
				panelWerte.add(new JLabel(text[i], SwingConstants.CENTER), constraint);
			}
			constraint.gridy = 1;
			constraint.gridx = 0;
			panelWerte.add(getCBoxLage1(), constraint);
			
			for (int i = 1; i <= text.length; i++) {
				constraint.gridx = i;
				if (i < text.length - 1)
					panelWerte.add(new JLabel(), constraint);
				else 
					panelWerte.add(new JFormattedTextField(Tools.df3), constraint);
			}
			constraint.gridy = 2;
			constraint.gridx = 0;
			panelWerte.add(getCBoxLage2(), constraint);
			for (int i = 1; i <= text.length; i++) {
				constraint.gridx = i;
				if (i < text.length - 1)
					panelWerte.add(new JLabel(), constraint);
				else
					panelWerte.add(new JFormattedTextField(Tools.df3), constraint);
			}
			constraint.gridy = 3;
			constraint.gridx = 0;
			constraint.gridwidth = 2;
			constraint.anchor = GridBagConstraints.WEST;
			panelWerte.add(getCBoxAlle(), constraint);
			constraint.gridwidth = 1;
			constraint.anchor = GridBagConstraints.CENTER;
			constraint.gridx = 5;
			constraint.fill = GridBagConstraints.NONE;
			panelWerte.add(getButSpeichern(), constraint);
			constraint.gridx = 6;
			panelWerte.add(getButLoeschen(), constraint);
			constraint.gridx = 7;
			panelWerte.add(getButSchliessen(), constraint);
		}
		return panelWerte;
	}

	/**
	 * This method initializes comboStdPktalt	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getComboStdPktAlt() {
		if (comboStdPktAlt == null) {
			comboStdPktAlt = new JComboBox(this.stdPktAlt);
			comboStdPktAlt.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("comboBoxStdPktAlt");
					myself.fillComboBox(myself.zielPktAlt);
					myself.fillComboBox(myself.stdPktNeu);
				}
			});
			this.fillComboBox(this.stdPktAlt);
		}
		return comboStdPktAlt;
	}

	/**
	 * This method initializes comboZielPktAlt	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getComboZielPktAlt() {
		if (comboZielPktAlt == null) {
			comboZielPktAlt = new JComboBox(this.zielPktAlt);
			comboZielPktAlt.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("comboBoxZielPktAlt");					
					if (!myself.wait)
						myself.fillWerte();
					myself.fillComboBox(myself.zielPktNeu);
				}
			});
		}
		return comboZielPktAlt;
	}

	/**
	 * This method initializes comboStdPktNeu	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getComboStdPktNeu() {
		if (comboStdPktNeu == null) {
			comboStdPktNeu = new JComboBox(this.stdPktNeu);
			comboStdPktNeu.setEditable(true);
			comboStdPktNeu.setSelectedIndex(-1);
			comboStdPktNeu.addItemListener(this);
			this.fillComboBox(this.stdPktNeu);
		}
		return comboStdPktNeu;
	}

	/**
	 * This method initializes comboZielPktNeu	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getComboZielPktNeu() {
		if (comboZielPktNeu == null) {
			comboZielPktNeu = new JComboBox(this.zielPktNeu);
			comboZielPktNeu.setEditable(true);
			comboZielPktNeu.setSelectedIndex(-1);
			comboZielPktNeu.addItemListener(this);
			this.fillComboBox(this.zielPktNeu);
		}
		return comboZielPktNeu;
	}

	/**
	 * This method initializes cBoxLage1	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCBoxLage1() {
		if (cBoxLage1 == null) {
			cBoxLage1 = new JCheckBox();
			cBoxLage1.addItemListener(this);
		}
		return cBoxLage1;
	}

	/**
	 * This method initializes cBoxLage2	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCBoxLage2() {
		if (cBoxLage2 == null) {
			cBoxLage2 = new JCheckBox();
			cBoxLage2.addItemListener(this);
		}
		return cBoxLage2;
	}

	/**
	 * This method initializes cBoxAlle	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCBoxAlle() {
		if (cBoxAlle == null) {
			cBoxAlle = new JCheckBox();
			cBoxAlle.setText("Alle markieren");
			cBoxAlle.addItemListener(this);
		}
		return cBoxAlle;
	}

	/**
	 * This method initializes butSpeichern	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getButSpeichern() {
		if (butSpeichern == null) {
			butSpeichern = new JButton();
			butSpeichern.setText("Speichern");
		}
		return butSpeichern;
	}

	/**
	 * This method initializes butLoeschen	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getButLoeschen() {
		if (butLoeschen == null) {
			butLoeschen = new JButton();
			butLoeschen.setText("Löschen");
			butLoeschen.setEnabled(false);
			butLoeschen.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if (myself.getCBoxLage1().isSelected()) {
						Degas.getProjekt().getMessDaten().delete(myself.getComboStdPktAlt().getSelectedItem().toString(), myself.getComboZielPktAlt().getSelectedItem().toString(), true);
						myself.getCBoxLage1().setSelected(false);
					}
					if (myself.getCBoxLage2().isSelected()) {
						Degas.getProjekt().getMessDaten().delete(myself.getComboStdPktAlt().getSelectedItem().toString(), myself.getComboZielPktAlt().getSelectedItem().toString(), false);
						myself.getCBoxLage2().setSelected(false);
					}
					myself.getCBoxAlle().setSelected(false);
					myself.getButLoeschen().setEnabled(false);
					myself.fillComboBox(myself.stdPktAlt);
				}				
			});
		}
		return butLoeschen;
	}

	/**
	 * This method initializes butSchliessen	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getButSchliessen() {
		if (butSchliessen == null) {
			butSchliessen = new JButton();
			butSchliessen.setText("Schließen");
		}
		return butSchliessen;
	}

	private void buttonGrösse() {
		int height = 0;
		int width = 0;
		for (Component c: this.getPanelWerte().getComponents()) {
			if (c instanceof JButton) {
				System.out.println(c.getSize().toString());
				if (height < c.getHeight())
					height = c.getHeight();
				if (width < c.getWidth())
					width = c.getWidth();
			}
		}
		for (int i = 0; i < this.getPanelWerte().getComponentCount(); i++) {
			Component c = this.getPanelWerte().getComponent(i);
			if (c instanceof JButton) {
				c.setSize(width, height);
				c.validate();
			}
		}
		this.getPanelWerte().validate();
	}
	
	/**
	 * Methode zum füllen der entsprechenden Comboboxmodelle nach gewissen Kriterien
	 * @param DefaultCobmoBoxModel Modell der zu füllenden ComboBox
	 */
	
	private void fillComboBox(DefaultComboBoxModel model) {
		
		if (model.getSize() > 0)
			model.removeAllElements();
		
		if (model.equals(this.stdPktAlt)) {
			for ( int i = 0, anz = Degas.getProjekt().getMessDaten().getSize(); i < anz; i++) {
				Object obj = Degas.getProjekt().getMessDaten().getDatensatz(i).get(0);
				if (this.stdPktAlt.getIndexOf(obj) == -1)
					this.stdPktAlt.addElement(obj);
			}
			this.fillComboBox(zielPktAlt);
		}

		if (model.equals(this.zielPktAlt)) {
			for ( int i = 0, anz = Degas.getProjekt().getMessDaten().getSize(); i < anz; i++) {
				if (Degas.getProjekt().getMessDaten().getDatensatz(i).get(0).equals(this.stdPktAlt.getSelectedItem())) {
					Object obj = Degas.getProjekt().getMessDaten().getDatensatz(i).get(1);
					if (model.getIndexOf(obj) == -1)
						model.addElement(obj);
				}
			}		
		}

		if (model.equals(this.stdPktNeu)) {
			for (int i = 0, anz = this.stdPktAlt.getSize(); i < anz; i++)
				if (!this.stdPktAlt.getElementAt(i).equals(this.stdPktAlt.getSelectedItem()))
					model.addElement(this.stdPktAlt.getElementAt(i));
			model.setSelectedItem(null);			
		}
		
		if (model.equals(this.zielPktNeu)) {
			for (int i = 0, anz = this.zielPktAlt.getSize(); i < anz; i++)
				if (!this.zielPktAlt.getElementAt(i).equals(this.zielPktAlt.getSelectedItem()))
					model.addElement(this.zielPktAlt.getElementAt(i));
			model.setSelectedItem(null);
		}
	}
	
	private void fillWerte() {
		Vector ds = Degas.getProjekt().getMessDaten().getDatenSatz(this.stdPktAlt.getSelectedItem().toString(), this.zielPktAlt.getSelectedItem().toString(), true);
		if (!ds.isEmpty()) {
			boolean[] indikator = (boolean[])ds.lastElement();		
			for(int i = 8, j = 0, anz = this.getPanelWerte().getComponentCount(); i < anz; i++) {
				Component comp = this.getPanelWerte().getComponent(i);
				if ((comp instanceof JLabel) || (comp instanceof JTextField)) {
					if ((j < 4) && (indikator[j])) {
						JLabel l = (JLabel)comp;
						if (j < 2)
							l.setText(Tools.df4.format(ds.get(j+2))+ " [gon]");
						else
							l.setText(Tools.df3.format(ds.get(j+2))+ " [m]");
					}

					if ((j >= 4) && (j < 7)&& (indikator[1])) {
						if (comp instanceof JLabel) {
							JLabel l = (JLabel)comp;
							l.setText(Tools.df3.format(ds.get(j+2))+ " [m]");
						}
						if (comp instanceof JTextField) {
							JTextField t = (JTextField)comp;
							t.setText(Tools.df3.format(ds.get(j+2)));
						}
					}

					if (j == 7) {
						j = 0;
						ds = Degas.getProjekt().getMessDaten().getDatenSatz(this.stdPktAlt.getSelectedItem().toString(), this.zielPktAlt.getSelectedItem().toString(), false);
						if (!ds.isEmpty())
							indikator = (boolean[])ds.lastElement();
						else {
							this.cBoxLage2.setVisible(false);
							break;
						}
					} else
						j++;					
				}					
			}
			this.getJSplitPane().validate();
		}
	}

	public void itemStateChanged(ItemEvent e) {
		if ((e.getSource().equals(this.getCBoxLage1())) || (e.getSource().equals(this.getCBoxLage2()))) {
			if (this.getCBoxLage1().isSelected() || this.getCBoxLage2().isSelected())
				this.getButLoeschen().setEnabled(true);
			else
				this.getButLoeschen().setEnabled(false);
		}
		if (e.getSource().equals(this.getCBoxAlle())) {
			if (this.getCBoxLage1().isSelected())
				this.getCBoxLage1().setSelected(false);
			else
				this.getCBoxLage1().setSelected(true);
			if (this.getCBoxLage2().isSelected())
				this.getCBoxLage2().setSelected(false);
			else
				this.getCBoxLage2().setSelected(true);				
		}	
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

Ich hab jetzt mal den ganzen Quelltext hier gepostet, weil ich das ding gerade nicht mehr sehen kann.
Also das Problem besteht einfach darin, dass wenn ich die Combobox comboStdPktAlt anklicke fühlt er die Modelle this.stdPktNeu und this.ZielPktAlt anhand des neu gewählten alten Standpunktes. Nur dann geht es los. Anscheinden ist noch this.zielPktAlt noch nicht voll, da führt er schon this.fillWerte aus, weil bei der Erzeugung von ds kommt immer eine NullPointerException. er kann also auf irgendwas da nicht zugreifen. Und ich weiss nicht mehr weiter. Normaler weise wird doch alles Schritt für Schritt abgearbeitet und wenn die Modele voll sind, kann ich da doch einen Wert auslesen, nur macht er alles gleichezeitig wie mir scheint, ist doch aber nur ein Tread.
Also wo könnte der Fehler liegen? Ich komm da echt nicht mehr mit.
Das der btnLoeschen sowieso nur Fehler auswirft ist das nächste. Sobald ich auf ein Model zugreife es ändere und dann die neuen Texte ausgeben will, dann dreht er durch.

Danke für eure Hilfe, ich bin mit den Nerven fertig.
 

Marco13

Top Contributor
So viel Quälkot, und doch nicht compilierbar. Jedenfalls wird fillWerte im Konstruktor aufgerufen, dor sind die "SelectedItems" vielleicht noch null - zumal du sie an einigen Stellen per Hand auf null setzt.
 
L

lspagl

Gast
Also das fillWerte() führe ich im Konstruktor nach der Erstellung der gesamten grafischen Oberfläche aus. Hatte ich zuerst da mit drinne, erschien mir aber logischer es ausserhalb der Grafik aufzurufen. In den einzelnen Konstruktoren der Elemente werden ja die Inhalte für die ComboBoxen gefüllt. Das ist auch nicht problematisch.

Das Problem tritt auf, wenn ich den alten Standpunkt ändere bzw. in der comboStdPktAlt einen anderen Wähle. Während er noch die Liste für die dazugehörigen Zielpunkte comboZielPktAlt erstellt will er schon fillWerte() ausführen, warum auch immer.
Eine Möglichkeit wäre ja fillWerte() in eine eigenen Thread auszulagern, nur hab ich davon absolut keine Ahnung und wüsste auchnicht wie ich das jetzt so einfach machen sollte.
Mir ist halt rätselhaft, warum er fillWerte() mittendrin ausführt, oder hab ich einfach nur einen riesengrossen Denkfehler und seh ihn einfach nicht mehr?
 
L

lspagl

Gast
Also, beim schrittweisen debuggen ist mir aufgefallen das er fillWerte() fast 3x hintereinenader aufruft. da er aber zwischen durch nochmal fillcomboBox mit zielPktAlt aufruft und da die liste löscht ist natürlich dann bei der erstellung des ds in fillWerte() da kein Element enthalten und es kommt zum fehler. Jetzt ist nur die Frage wieso führt er bitte alles so kreuz der quer aus und warum macht er das anscheinend Multithreading?
Die nächste Sache ist, das er die actioPerformed bei der erstellung der comboboxen mit ausführt. Wie kann ich das unterbinden, weil es na der Stelle einfach mal nicht nötig, nervig und vorallem mit Ursache für fehler ist.
 

sp@g

Mitglied
Also ich habe es jetzt hinbekommen. Das Problem an der Sache war einfach nur, dass ich die Funktion der Listener noch nicht so richtig begriffen hatte. Da ActionEvent sowie ItemStateChangeEvent jeweils ausgelöst werden wenn etwas an der Komponente passiert und nicht nur wenn man darauf klickt, wurde natürlich die fillWerte() mehrfach ausgeführt, was dazu geführt hat, die Liste gerade leer war, als fillWerte() einen neuen ds erzeugen wollte. Jetzt funz es zumindest erstmal.
habe es jetzt folgender massen gelöst:
Code:
private JComboBox getComboStdPktAlt() {
		if (comboStdPktAlt == null) {
			comboStdPktAlt = new JComboBox(this.stdPktAlt);
			comboStdPktAlt.addItemListener(new ItemListener() {
				public void itemStateChanged(ItemEvent arg0) {
					myself.fillComboBox(myself.zielPktAlt);
					myself.fillComboBox(myself.stdPktNeu);					
				}				
			});
		}
		return comboStdPktAlt;
	}

	/**
	 * This method initializes comboZielPktAlt	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getComboZielPktAlt() {
		if (comboZielPktAlt == null) {
			comboZielPktAlt = new JComboBox(this.zielPktAlt);
			comboZielPktAlt.addItemListener(new ItemListener() {
				public void itemStateChanged(ItemEvent arg0) {
					if (myself.comboZielPktAlt.getSelectedItem() != null)
						myself.fillWerte();
					myself.fillComboBox(myself.zielPktNeu);
				}
			});
		}
		return comboZielPktAlt;
	}

Das sind jetzt die zwei JComboBoxen, die jeweils reagieren sollten. Meine Sorgenkinder

Code:
	private void fillComboBox(DefaultComboBoxModel model) {
		
		if (model.getSize() > 0)
			model.removeAllElements();
		
		if (model.equals(this.stdPktAlt)) {
			for ( int i = 0, anz = Degas.getProjekt().getMessDaten().getSize(); i < anz; i++) {
				Object obj = Degas.getProjekt().getMessDaten().getDatensatz(i).get(0);
				if (model.getIndexOf(obj) == -1)
					model.addElement(obj);
			}
		}

		if (model.equals(this.zielPktAlt)) {
			for ( int i = 0, anz = Degas.getProjekt().getMessDaten().getSize(); i < anz; i++) {
				if (Degas.getProjekt().getMessDaten().getDatensatz(i).get(0).equals(this.getComboStdPktAlt().getSelectedItem())) {
					Object obj = Degas.getProjekt().getMessDaten().getDatensatz(i).get(1);
					if (model.getIndexOf(obj) == -1)
						model.addElement(obj);
				}
			}
		}

		if (model.equals(this.stdPktNeu)) {
			for (int i = 0, anz = this.stdPktAlt.getSize(); i < anz; i++)
				if (!this.stdPktAlt.getElementAt(i).equals(this.stdPktAlt.getSelectedItem()))
					model.addElement(this.stdPktAlt.getElementAt(i));
			model.setSelectedItem(null);			
		}
		
		if (model.equals(this.zielPktNeu)) {
			for (int i = 0, anz = this.zielPktAlt.getSize(); i < anz; i++)
				if (!this.zielPktAlt.getElementAt(i).equals(this.zielPktAlt.getSelectedItem()))
					model.addElement(this.zielPktAlt.getElementAt(i));
			model.setSelectedItem(null);
		}
	}

die fillComboBox() macht jetzt wirklich nix mehr ausser die ComboBoxen füllen bzw. die Modelle der entsprechenden ComboBoxen. Das fühlen, der comboZielPktAlt übernimmt jetzt der ActionListener der comboStdPktAlt und nicht wie vorher die entsprechende fillMethode. Jetzt
Dennoch musste ich in der comboZielPktAlt eine Prüfung einbauen, weil beim ersten Aufruf des ActionEvents ist noch kein Item selected. Er ruft den Event aber eh zweimal auf, warum auch immer. Da bin ich noch nicht hintergekommen.
Zumindest läuft der Dialog erstmal und ich bin um einige Erfahrunge reicher, hehe.

Grüße und Danke fürs zuhören :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben