Null pointer exception beim Neuzeichnen

Status
Nicht offen für weitere Antworten.

Alerion

Mitglied
Hi,

ich kriege folgende Fehlermeldung:

Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at javax.swing.JTable.prepareRenderer(Unknown Source)
	at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
	at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
	at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
	at javax.swing.plaf.ComponentUI.update(Unknown Source)
	at javax.swing.JComponent.paintComponent(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
	at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
	at javax.swing.JComponent._paintImmediately(Unknown Source)
	at javax.swing.JComponent.paintImmediately(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
	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)

Auftreten tut der Fehler bei folgendem Code:

Code:
 public SimpleTableFrame() 
    { 
        super("Mercator"); 
        app = new AppTier();
         
        m_simpleTableModel = new SimpleTableModel(m_shoppingList.getArticles()); 
         
        m_simpleTable = new JTable(m_simpleTableModel); 

        JSplitPane splitPaneTop = new JSplitPane();
		getContentPane().add(splitPaneTop, BorderLayout.CENTER);
		splitPaneTop.setOrientation(JSplitPane.VERTICAL_SPLIT);
		getContentPane().add(splitPaneTop);
		
		JPanel pPaneTop = new JPanel();
		splitPaneTop.setTopComponent(pPaneTop);
		
		pPaneTop.setLayout(new FlowLayout());
		pPaneTop.setMinimumSize(new Dimension(600, 25));
		
		JLabel l_shoppingList = new JLabel();
		pPaneTop.add(l_shoppingList);
		l_shoppingList.setText("Einkaufsliste");
		
		{
			//creating a vertical split pane and adding it to the frame
			JSplitPane splitPane = new JSplitPane();
			splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
			splitPaneTop.add(splitPane, JSplitPane.RIGHT);		
			{
        
		        //Add the JTable to the scroll pane to handle table 
		        //scrolling and to display the table header which displays 
		        //the column names 
		        JScrollPane scrollPane = new JScrollPane(m_simpleTable); 
		        scrollPane.setMinimumSize(new java.awt.Dimension(600,180));
		         
		        //add the scroll pane to the top of the split pane 
		        splitPane.setTopComponent(scrollPane);
	        }
         
			//add a new pane to the bottom of the split pane
	        JPanel pPane = new JPanel();
	        splitPane.setBottomComponent(pPane); 
	        pPane.revalidate();
	        
	        // Menübalken einfügen
	        JMenuBar jMenuBar1 = new JMenuBar();
			setJMenuBar(jMenuBar1);
			{
				JMenu jMenu1 = new JMenu();
				jMenuBar1.add(jMenu1);
				jMenu1.setText("Menü");
				{		
					JMenuItem MenOpenFile = new JMenuItem("Öffne Einkaufliste");
					
					jMenu1.add(MenOpenFile);			
			
					MenOpenFile.addActionListener(new ActionListener(){
						public void actionPerformed(ActionEvent e) 
						  { 
							JFileChooser FileChooser = new JFileChooser(path);
							FileChooser.addChoosableFileFilter(new MyFilter());
							int returnVal = FileChooser.showOpenDialog(null);
							if (returnVal == JFileChooser.APPROVE_OPTION)
							{
								File selectedFile = FileChooser.getSelectedFile();
								System.out.println(""+selectedFile);
								String ParseFile = ("" + selectedFile);
								m_shoppingList.getArticles().clear();
								
								try
								{
									m_shoppingList = app.load(ParseFile, m_shoppingList);
								}
								catch (IOException ioe)
								{
									String message = ioe.getMessage();
									error(message);
								}

								m_simpleTable.updateUI();	
							}									
						  }
					});
		}
    }

Code:
	public ShoppingList load(String fileName, ShoppingList shoppingList) throws IOException
	{
		dat.parsing(fileName);	
		
		// analysis
		dat.analysis(shoppingList);
		
		return shoppingList;
	}

Code:
public void parsing(String param)
	{
		File fFile = new File(param);
		boolean load=fFile.canRead();
		if (load == true)
		{
			try
			{
				DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
				DocumentBuilder builder = factory.newDocumentBuilder();
				document = builder.parse(fFile);
			}
			
			catch (SAXParseException error)
			{
				System.out.println("\n+++Parse Error++++" + "\nZeile: " + error.getLineNumber() + "\nDatei: " + error.getSystemId());
				System.out.println("\n" + error.getMessage());
			}			
			catch (ParserConfigurationException pce){pce.printStackTrace ();}
			catch (IOException ioe){ioe.printStackTrace();}	
			catch (Throwable t){t.printStackTrace();}
		}
		
		else{System.out.println("Datei existiert nicht!");}
	}

Code:
public ShoppingList analysis(ShoppingList shoppingList) throws IOException
	{
		int a, num_undertags, b;
		NodeList tagliste=document.getElementsByTagName("Article");
		NodeList ChildTags;
		int num=tagliste.getLength();
		Node tag;
		String a_Name = new String();
		String a_Category = new String();
		String a_Unit = new String();
		int a_Amount = 0;
		int a_PPE = 0;
		boolean a_Purchased = false;
		short TagTyp;
		
		if (num == 0)
		{
			throw new IOException ("Datei ist keine Einkaufsliste");
		}
		
		for (a=0;a<num; a++)
		{
			ChildTags=tagliste.item(a).getChildNodes();
			num_undertags=ChildTags.getLength();
			for(b=0; b<num_undertags; b++)
			{
				tag=ChildTags.item(b);
				TagTyp=tag.getNodeType();
				if (TagTyp==Node.ELEMENT_NODE)
				{
					if (tag.getNodeName().equals("Label"))
					{
						a_Name = tag.getFirstChild().getNodeValue();
					}
					if (tag.getNodeName().equals("Type"))
					{
						a_Category = tag.getFirstChild().getNodeValue();
					}
					if (tag.getNodeName().equals("UnitLabel"))
					{
						a_Unit = tag.getFirstChild().getNodeValue();
					}
					if (tag.getNodeName().equals("Amount"))
					{
						a_Amount = Integer.parseInt(tag.getFirstChild().getNodeValue());												
					}
					if (tag.getNodeName().equals("PricePerUnit"))
					{
						a_PPE = Integer.parseInt(tag.getFirstChild().getNodeValue());
					}
					if (tag.getNodeName().equals("Purchased"))
					{
						String boolSave = (""+tag.getFirstChild().getNodeValue());
						if (boolSave.equals("true"))
						{
							a_Purchased = true;
						}
						if (boolSave.equals("false"))
						{
							a_Purchased= false;
						}
					}
				}
			}
							
			shoppingList.getArticles().addElement(new Article(a_Name, a_Category, a_Amount, a_PPE, a_Unit, a_Purchased));	
		}
		
		NodeList tagliste2=document.getElementsByTagName("PurchasedDate");
		System.out.println("Datum:" + tagliste2.item(0).getFirstChild().getNodeValue());
		try
		{
			DateFormat dft = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss ZZZ");
//TODO
			//			shoppingList.setPurchaseDate(dft.parse(tagliste2.item(0).getFirstChild().getNodeValue()));
		}
		catch(Exception e)
		{
			
		}
		tagliste2=document.getElementsByTagName("Shop");
		System.out.println("Laden: " + tagliste2.item(0).getFirstChild().getNodeValue());
		
		return shoppingList;
		

	}

Der Fehler wird ausgelöst durch das UpdateUI(), so weit zumindest meine Beobachtungen. Wie kann ich aber die Tabelle mit dem neuen Inhalt neu zeichnen, ohne dass dieser Fehler auftritt?
 

AlArenal

Top Contributor
Alerion hat gesagt.:
Wie kann ich aber die Tabelle mit dem neuen Inhalt neu zeichnen, ohne dass dieser Fehler auftritt?

Indem du dein Model vollständig und korrekt implementierst, d.h. dieses seine TableModelListener ordnungsgemäß über Änderungen informierst. Dazu gibts 1001 Threads hier im Forum ;)
 

thE_29

Top Contributor
Ich kriege sowas auch..

Aber nur ab und zu und es kommt immer bei getListCellRendererComponent nur wird in den Programmen nie was mit einer Liste oder ähnlichem angezeigt...


Aber das Programm rennt ganz normal weiter?!
 

Alerion

Mitglied
AlArenal hat gesagt.:
Alerion hat gesagt.:
Wie kann ich aber die Tabelle mit dem neuen Inhalt neu zeichnen, ohne dass dieser Fehler auftritt?

Indem du dein Model vollständig und korrekt implementierst, d.h. dieses seine TableModelListener ordnungsgemäß über Änderungen informierst. Dazu gibts 1001 Threads hier im Forum ;)

Ich hab mir das jetzt alles durchgelesen, aber ich blick das einfach nicht.

ich hab jetzt im Model TableModelListeners eingefügt mit

Code:
        public void addTableModelListener(TableModelListener l)
        {
        	
        }
        
         public void removeTableModelListener(TableModelListener l) 
         { 
           
         }

und rufe statt updateUI()

Code:
								TableModelEvent ede = new TableModelEvent(m_simpleTableModel);

								m_simpleTableModel.fireTableChanged(ede);


Aber updaten tut er da mal gar nix. Wie funktioniert das?
 

Alerion

Mitglied
Ich hab's jetzt noch mal mit:

Code:
 m_simpleTableModel.addTableModelListener(new TableModelListener(){
        	public void tableChanged(TableModelEvent tme){
        		
        	}
        });

und

Code:
TableModelEvent ede = new TableModelEvent(m_simpleTableModel);

								m_simpleTableModel.fireTableChanged(ede);

versucht, aber das gibt jetzt wieder eine Null Pointer Exception, obwohl ich doch gar nicht mehr updateUI() machen. Kann mir denn echt keiner erklären, wie das geht? Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
D Bild zeichnen lassen aus array, null pointer Exception AWT, Swing, JavaFX & SWT 2
P paint null pointer exception AWT, Swing, JavaFX & SWT 3
V Null Pointer Exception bei JTextField setText AWT, Swing, JavaFX & SWT 25
G null pointer mit getText AWT, Swing, JavaFX & SWT 2
Z textField.getText = null AWT, Swing, JavaFX & SWT 15
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
AmsananKING Textfelder sind gleich null AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
J Injection - Aber Controller sind null AWT, Swing, JavaFX & SWT 3
J Controller ist null - Warum AWT, Swing, JavaFX & SWT 3
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
N SceneBuilder wie auf Attribute zugreifen? Diese sind immer null. AWT, Swing, JavaFX & SWT 6
F javaxt.io.Image getBufferedImage liefert null AWT, Swing, JavaFX & SWT 1
D Zwischen Null-Layouts wechseln AWT, Swing, JavaFX & SWT 2
S Unverstandene Null.PointException AWT, Swing, JavaFX & SWT 4
D AWT Graphics2D getClip gibt null zurück AWT, Swing, JavaFX & SWT 3
H Swing jComboBox Ausgabe -1/null AWT, Swing, JavaFX & SWT 4
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
K Swing JSpinner mit NULL AWT, Swing, JavaFX & SWT 3
F JavaFX Properties und NULL Werte AWT, Swing, JavaFX & SWT 2
M JTextField gibt beim auslesen null aus AWT, Swing, JavaFX & SWT 9
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
S String is null Fehler AWT, Swing, JavaFX & SWT 2
R Swing JLabel gibt stets 'null' aus AWT, Swing, JavaFX & SWT 3
E Null-Layout - Wie geht es ohne? AWT, Swing, JavaFX & SWT 19
P Swing JTable null values an das Ende verschieben AWT, Swing, JavaFX & SWT 2
S pack() bei null-Layout AWT, Swing, JavaFX & SWT 10
F Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: null AWT, Swing, JavaFX & SWT 5
C JTable sorter GregorianCalender null Exc AWT, Swing, JavaFX & SWT 4
N Swing JFrame==null und doch nicht null?! AWT, Swing, JavaFX & SWT 4
N JButton Border(null) AWT, Swing, JavaFX & SWT 3
E JPanel mit Null Layout entfernt Buttons AWT, Swing, JavaFX & SWT 11
K Swing regexFilter() null filtern AWT, Swing, JavaFX & SWT 3
R Swing JComboBox - Null-Feld AWT, Swing, JavaFX & SWT 7
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
J JScrollPane & Null-Layout AWT, Swing, JavaFX & SWT 12
A JPanel mit Layout(null) in JPanel AWT, Swing, JavaFX & SWT 4
G Zentrieren mittels setLocationRelativeTo(null);? AWT, Swing, JavaFX & SWT 14
G Value vom TreeCellEditor ist immer null AWT, Swing, JavaFX & SWT 3
G JTree Problem: Null Child not allowed AWT, Swing, JavaFX & SWT 12
J JList CellRenderer Null-Layoutpanel AWT, Swing, JavaFX & SWT 4
C getGraphics() liefert nur null AWT, Swing, JavaFX & SWT 4
H null Layout -> Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
G Probleme mit Content bei Null-Layout verändern AWT, Swing, JavaFX & SWT 7
T Null Layout Problem. AWT, Swing, JavaFX & SWT 3
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
S Text im JLabel wird nicht als null anerkannt AWT, Swing, JavaFX & SWT 4
I Null-Layout-Problem AWT, Swing, JavaFX & SWT 2
M Problem mit NULL-Layout AWT, Swing, JavaFX & SWT 2
V CellEditor der nur Eingaben int 1-9 und "null" er AWT, Swing, JavaFX & SWT 11
H getGraphics() eines JPanel liefert immer null zurück AWT, Swing, JavaFX & SWT 6
F PanelBounds an TextPaneBounds anpassen LayoutManager: Null AWT, Swing, JavaFX & SWT 2
O JScrollPane beinhaltet JPanel mit null Layout kein Scrollen AWT, Swing, JavaFX & SWT 3
M bei filechooser.showSaveDialog(null); auf Datein. zugreifen AWT, Swing, JavaFX & SWT 2
B NULL Layout - TextFelder verschwinden AWT, Swing, JavaFX & SWT 8
F Scrollen bei JTextArea in einem Null-Layout? Unmöglich? AWT, Swing, JavaFX & SWT 4
R Komponenten frei per Drag&Drop in (z.B.) Null-Layout bew AWT, Swing, JavaFX & SWT 2
B [Swing] Null-Layout AWT, Swing, JavaFX & SWT 2
G Scrollpane in null-Layout einfügen AWT, Swing, JavaFX & SWT 5
G JList: Anzeige von null-Werten verhindern AWT, Swing, JavaFX & SWT 3
W Probleme mit Border- und null-Layout AWT, Swing, JavaFX & SWT 8
Z createImage() liefert null zurück AWT, Swing, JavaFX & SWT 4
K JTextArea und setLayout(null) AWT, Swing, JavaFX & SWT 3
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
G Exception javafx Thread -> caused by removing children while in EventHandler AWT, Swing, JavaFX & SWT 28
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
Z JavaFX Exception in Application start method AWT, Swing, JavaFX & SWT 2
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
R AWT no such child Exception AWT, Swing, JavaFX & SWT 7
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
A Swing Exception in thread "AWT-EventQueue-0" AWT, Swing, JavaFX & SWT 1
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
S JavaFX Exception in thread "JavaFX Application Thread" AWT, Swing, JavaFX & SWT 3
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Exception Message von Model Class via Controller in View darstellen AWT, Swing, JavaFX & SWT 39
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Exception in der Eventqueue AWT, Swing, JavaFX & SWT 8
X Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 AWT, Swing, JavaFX & SWT 6
H JavaFX Ein View vorschalten Exception AWT, Swing, JavaFX & SWT 7
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
M 3D-Grafik Mac Java 3D in Eclipse Exception AWT, Swing, JavaFX & SWT 0
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
I Opencv Imgproc.floodfill exception AWT, Swing, JavaFX & SWT 1
S Swing Exception in thread "AWT-EventQueue-0" bei Jlabel AWT, Swing, JavaFX & SWT 4
T Gui Exception AWT, Swing, JavaFX & SWT 2
X Auf Fensterklasse zugreifen (Nullpointer Exception) AWT, Swing, JavaFX & SWT 2
M Threads - nicht erklärbare Exception AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
C Event Handling Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException AWT, Swing, JavaFX & SWT 43
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben