Re^2: NullPointerException
Hallo,
Java zählt von 0 ab.
Gruß
Peter
Hi Peter..
Ja ist mir bekannt, danke.. das TextField [0] ist im JPanel gesetzt, ist aber nicht abgefragt und wird auch nicht beschrieben... Ist nur für mich da, soweit unwichtig... Da nicht das ganze TextField Array gespeichert wird, kann ich auch felder auslassen, oder?
Kann mir nicht vorstellen das es daran liegt dass ich Array[0] nicht beachte..
Hab hier nochmal zur Sicherheit die ganze Hauptklasse reingesetzt... Ist allerdings noch lange nicht vollständig.
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
public class Menue extends JFrame implements ActionListener
{
static Vector scheine;
Container con;
int zeiger=0;
Daten dat;
final String FILENAME="c:\\Glueckbingo.ser";
JPanel jp1,jp2;
JPanel[] panel={ jp1= new JPanel(),
jp2= new JPanel()};
JMenuBar menuBar = new JMenuBar();
JMenu menuDatei = new JMenu();
JMenuItem menuDateiOffen= new JMenuItem();
JMenuItem menuDateiSpeich= new JMenuItem();
JMenuItem menuDateiExit = new JMenuItem();
JButton b1= new JButton("->");
JButton b2= new JButton("<-");
JButton b3= new JButton("Einfügen");
JLabel jl0,jl1,jl2,jl3,jl4,jl5,jl6;
JLabel[] label={ jl0= new JLabel("Scheinnummer"),
jl1= new JLabel("Spiel"),
jl2= new JLabel("1000 EURO"),
jl3= new JLabel("JOCKER"),
jl4= new JLabel("20000 EURO"),
jl5= new JLabel("50000 EURO"),
/*jl6= new JLabel(" ")*/};
JTextField[] atext= new JTextField[50];
JTextField spiel= new JTextField();
JTextField scheinnr= new JTextField();
public Menue()
{
super ("Menue!");
con=getContentPane();
setSize(800,400);
setLocation(100,100);
menuDatei.setLabel("Datei");
menuDateiOffen.setLabel("HD-Öffnen");
menuDateiSpeich.setLabel("HD-Speichern");
menuDateiExit.setLabel("Exit");
menuDateiOffen.addActionListener(this);
menuDateiSpeich.addActionListener(this);
menuDateiExit.addActionListener(this);
menuDatei.add(menuDateiOffen);
menuDatei.add(menuDateiSpeich);
menuDatei.add(menuDateiExit);
menuBar.add(menuDatei);
setTitle("Glücksbingo");
setJMenuBar(menuBar);
con.add(jp1,"South");con.add(jp2);
jp1.add(b1);jp1.add(b2);jp1.add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
this.addWindowListener
(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Menue.this.windowClosed();
}
}
);
for (int i = 0; i < atext.length; i++)
{
atext[i] = new JTextField();
}
LayoutSeiten ls= new LayoutSeiten();
ls.layouten(jp2,label,atext,spiel,scheinnr);
}
public void actionPerformed(ActionEvent e)
{
String cmg = e.getActionCommand();
if (cmg.equals("Einfügen"))
{
try
{
dat= new Daten();
dat.scheinnr=scheinnr.getText();
dat.spiel =spiel.getText();
for (int a=1;a<=10;a++)
dat.tausend.add(atext[a].getText());
for (int a=11;a<=20;a++)
dat.jocker.add(atext[a].getText());
for (int a=21;a<=30;a++)
dat.zwanzig.add(atext[a].getText());
for (int a=31;a<=50;a++)
dat.fuenfzig.add(atext[a].getText());
scheine.add(dat);
loeschen();
}
catch (NullPointerException npe)
{
System.out.println(npe);
}
}
else if (cmg.equals("<-"))
{
if(scheine.size()-1>=zeiger)
{
Daten dat=(Daten)scheine.elementAt(zeiger);
if (dat.spiel.equals(spiel.getText()))
{
int a=0;
for (Enumeration tau=dat.tausend.elements();tau.hasMoreElements();)
{
System.out.println(""+tau.nextElement());
a++;
}
for (Enumeration jo=dat.jocker.elements();jo.hasMoreElements();)
{
System.out.println(""+jo.nextElement());
a++;
}
for (Enumeration zw=dat.zwanzig.elements();zw.hasMoreElements();)
{
System.out.println(""+zw.nextElement());
a++;
}
for (Enumeration fu=dat.fuenfzig.elements();fu.hasMoreElements();)
{
System.out.println(""+fu.nextElement());
a++;
}
zeiger++;
}else
{
zeiger++;
}
}
}
else if (cmg.equals("->"))
{
if(scheine.size()-1>=zeiger)
{
Daten dat=(Daten)scheine.elementAt(zeiger);
if (dat.spiel.equals(spiel.getText()))
{
int a=0;
for (Enumeration tau=dat.tausend.elements();tau.hasMoreElements();)
{
atext[a].setText(""+tau.nextElement());
a++;
}
for (Enumeration jo=dat.jocker.elements();jo.hasMoreElements();)
{
atext[a].setText(""+jo.nextElement());
a++;
}
for (Enumeration zw=dat.zwanzig.elements();zw.hasMoreElements();)
{
atext[a].setText(""+zw.nextElement());
a++;
}
for (Enumeration fu=dat.fuenfzig.elements();fu.hasMoreElements();)
{
atext[a].setText(""+fu.nextElement());
a++;
}
zeiger++;
}else
{
zeiger++;
}
}
}
else if (cmg.equals("HD-Öffnen"))
{
/* try
{
FileInputStream file= new FileInputStream(FILENAME);
ObjectInputStream ob= new ObjectInputStream(file);
scheine.removeAllElements();
scheine.addElements(ob.readObject());
}
catch (IOException ioe)
{
System.out.println(ioe);
}*/
}
else if (cmg.equals("HD-Speichern"))
{
try
{
FileOutputStream file= new FileOutputStream(FILENAME);
ObjectOutputStream ob= new ObjectOutputStream(file);
ob.writeObject(scheine);
ob.close();
}
catch (IOException ioe)
{
System.out.println(ioe);
}
}
else if (cmg.equals("Exit"))
{
System.exit(0);
}
}
public void loeschen()
{
for (int a=1;a<=50;a++)
{
atext[a].setText("");
}
}
protected void windowClosed()
{
System.exit(0);
}
}
hmmm, irgendwie sind die einrückungen nun stark verzogen.. sorry, hoffe einigermassen lesbar.
grüße von andy