Archief - NullPointerException bij textarea en textPane

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

math

Legacy Member
yo, ik ben bezig met een gui te maken waarop er een jtextarea of jtextpane komt met daarin namen van klanten. Maar als ik de tekst erin zet krijg ik een error. Als ik op de error klik selecteer het de for lus: for ( String klanten : dc.geefKlanten())

dc.geefKlanten geeft een array van Strings terug.


Code:
package gui;
import java.awt.BorderLayout;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;

import javax.swing.JOptionPane;
import javax.swing.WindowConstants;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextPane;

import domein.DomeinController;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class SelecteerKlantScherm extends javax.swing.JPanel implements ActionListener{
	private JPanel jPanel1;
	private JTextPane TextPane1;
	private JButton jButton3;
	private JButton jButton2;
	private JButton jButton1;
	private JTextArea TextArea1;
	private JPanel jPanel2;
	private DomeinController dc;
	private String res;
	/**
	* Auto-generated main method to display this 
	* JPanel inside a new JFrame.
	*/
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.getContentPane().add(new SelecteerKlantScherm());
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
	
	public SelecteerKlantScherm() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			BorderLayout thisLayout = new BorderLayout();
			this.setLayout(thisLayout);
			setPreferredSize(new Dimension(400, 300));
			{
				jPanel1 = new JPanel();
				jPanel1.setPreferredSize(new java.awt.Dimension(400, 30));
				this.add(jPanel1, BorderLayout.NORTH);				
			}
			{
				jPanel2 = new JPanel();
				jPanel2.setPreferredSize(new java.awt.Dimension(400, 50));
				this.add(jPanel2, BorderLayout.SOUTH);
				{
					jButton1 = new JButton();
					jPanel2.add(jButton1);
					jButton1.setText("selecteer");
				}
				{
					jButton2 = new JButton();
					jPanel2.add(jButton2);
					jButton2.setText("maak nieuwe klant");
				}
				{
					jButton3 = new JButton();
					jPanel2.add(jButton3);
					jButton3.setText("vorige");
				}
			}
			{
				TextPane1 = new JTextPane();
				this.add(TextPane1, BorderLayout.CENTER);					
				TextPane1.setEditable(false);
				String res="";
				for ( String klanten : dc.geefKlanten())/*hier zit de fout ergens*/{
					res+=String.format("%s /n", klanten);				
				}				
				TextPane1.setText(res);	
			}

			jButton1.addActionListener(this);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void actionPerformed(ActionEvent e){	
		
		if(e.getSource()==jButton1){
			
				
			
		}
			
			
	}
}

Code:
java.lang.NullPointerException
	at gui.SelecteerKlantScherm.initGUI(SelecteerKlantScherm.java:92)
	at gui.SelecteerKlantScherm.<init>(SelecteerKlantScherm.java:54)
	at gui.SelecteerKlantScherm.main(SelecteerKlantScherm.java:46)

Twilkie

Legacy Member
En variable namen beginnen altijd met kleine letters in Java.
Dat maakt je code veel leesbaarder.
Voor de rest, "what forlorn_ said".
Je dc wordt nergens gelijk gezet aan een waarde.

Yngwie

Legacy Member
Als je een nullpointer krijgt en je ziet in de code niet onmiddellijk waar de fout ligt zou je eerste reflex moeten zijn van een een debugger te gebruiken.

* Zet een breakpoint enkele regels voor de regel waar de nullpointer zich voordoet.
* Klik op "Debug" in je IDE ipv op "Run"
* werk met je programma zodat je aan het stuk code komt waar je breakpoint staat.
* het uitvoeren zal pauzeren aan je breakpoint en dan kan je in vanuit je IDE de toestand van de variabelen inspecteren en zien waar de fout zit.
* met "step over" kan je stapjes verder zetten in de code, "step into" een methode binnenstappen en "continue" om de uitvoer normaal verder te laten lopen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan