Hallo,
ich hab zwei Fragen zu meinem Programmcode. Ich bekomme wenn ich eine JTable ausdrucken will immer eine NullpointerException, obwohl die Tabelle gefüllt ist. Außerdem habe ich zwei Methoden bekommen (nicht selber geschrieben), die die Daten aus der JTable abspeichern sollen, allerdings wird hier nur ein XML-Dokument mit den Rahmendaten der Tabelle erstellt. Was kann ich tun? Hier der Code:
Gruß, Marco
ich hab zwei Fragen zu meinem Programmcode. Ich bekomme wenn ich eine JTable ausdrucken will immer eine NullpointerException, obwohl die Tabelle gefüllt ist. Außerdem habe ich zwei Methoden bekommen (nicht selber geschrieben), die die Daten aus der JTable abspeichern sollen, allerdings wird hier nur ein XML-Dokument mit den Rahmendaten der Tabelle erstellt. Was kann ich tun? Hier der Code:
Java:
public class athlet_erstellen extends Frame {
// Anfang Attribute
public String filename = "athleten_tabelle.xml";
public boolean tabelleangelegt = false;
private Label label_athlet_hinzufuegen = new Label();
private Label label_create_name = new Label();
private TextField textField_create_name = new TextField();
private Label label_create_vorname = new Label();
private TextField textField_create_vorname = new TextField();
private Label label_create_nationalitaet = new Label();
private TextField textField_create_nationalitaet = new TextField();
private Label label1 = new Label();
private Choice choice_create_disziplin = new Choice();
private Label label2 = new Label();
private Choice choice_create_anreisetag = new Choice();
private Choice choice_create_anreisemonat = new Choice();
private Label label3 = new Label();
private Choice choice_create_abreisetag = new Choice();
private Choice choice_create_abreisemonat = new Choice();
public Label label_create_hotel = new Label();
public Choice choice_create_hotel = new Choice();
private Label label4 = new Label();
private Choice choice_create_zimmerart = new Choice();
private Button button_create_athleterstellen = new Button();
private Label label_create_zahlweise = new Label();
private Choice choice_create_zahlweise = new Choice();
public DefaultTableModel tabModel;
public JTable table;
public TableColumnModel colmodel;
public String[][] rowData = {};
public String[] columnNames = {"HotelIndex","Name","Vorname","Nationalität","Disziplin","Hotel","Zimmerart","Zahlweise", "Anreisetag","Abreisetag","Anwesenheit"};
public int x=0;
public int y=1;
public hotel_erstellen ho_erst;
public int a;
private Button athlet_erstellen_print = new Button();
// Ende Attribute
public athlet_erstellen(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { dispose(); }
});
int frameWidth = 652;
int frameHeight = 439;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Panel cp = new Panel(null);
add(cp);
// Anfang Komponenten
tabModel = new DefaultTableModel(rowData, columnNames);
JTable table = new JTable( tabModel );
colmodel = new DefaultTableColumnModel();
table.setModel(tabModel);
table.setColumnModel(colmodel);
for(int i3=0;i3<11;i3++)
{
table.addColumn(new TableColumn(i3));
}
JFrame f = new JFrame("Athleten Datentabelle");
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.add( new JScrollPane(table) );
f.pack();
f.setVisible( true );
label_athlet_hinzufuegen.setBounds(24, 8, 176, 25);
label_athlet_hinzufuegen.setText("Athlet hinzufügen:");
label_athlet_hinzufuegen.setFont(new Font("MS Sans Serif", Font.BOLD, 18));
cp.add(label_athlet_hinzufuegen);
label_create_name.setBounds(43, 61, 40, 16);
label_create_name.setText("Name:");
label_create_name.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label_create_name);
textField_create_name.setBounds(88, 56, 353, 24);
textField_create_name.setText("");
cp.add(textField_create_name);
label_create_vorname.setBounds(24, 100, 58, 16);
label_create_vorname.setText("Vorname:");
label_create_vorname.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label_create_vorname);
textField_create_vorname.setBounds(88, 96, 353, 24);
textField_create_vorname.setText("");
cp.add(textField_create_vorname);
label_create_nationalitaet.setBounds(8, 140, 70, 16);
label_create_nationalitaet.setText("Nationalität:");
label_create_nationalitaet.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label_create_nationalitaet);
textField_create_nationalitaet.setBounds(88, 136, 353, 24);
textField_create_nationalitaet.setText("");
cp.add(textField_create_nationalitaet);
label1.setBounds(24, 182, 53, 16);
label1.setText("Disziplin:");
label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label1);
choice_create_disziplin.setBounds(88, 176, 353, 24);
cp.add(choice_create_disziplin);
choice_create_disziplin.addItem("Disziplin wählen");
choice_create_disziplin.addItem("100m Sprint");
choice_create_disziplin.addItem("200m Sprint");
choice_create_disziplin.addItem("400m Sprint");
choice_create_disziplin.addItem("800m");
choice_create_disziplin.addItem("1.000m");
choice_create_disziplin.addItem("1500m");
choice_create_disziplin.addItem("1 Meile");
choice_create_disziplin.addItem("3.000m");
choice_create_disziplin.addItem("5.000m");
choice_create_disziplin.addItem("10.000m");
choice_create_disziplin.addItem("4x100m Staffel");
choice_create_disziplin.addItem("4x400m Staffel");
choice_create_disziplin.addItem("3x800m Frauen");
choice_create_disziplin.addItem("3x1.000m Männer");
choice_create_disziplin.addItem("100m Hürden Frauen");
choice_create_disziplin.addItem("110m Hürden Männer");
choice_create_disziplin.addItem("3.000m Hinderniss");
choice_create_disziplin.addItem("Weitsprung");
choice_create_disziplin.addItem("Dreisprung");
choice_create_disziplin.addItem("Hochsprung");
choice_create_disziplin.addItem("Stabhochsprung");
choice_create_disziplin.addItem("Kugelstoßen");
choice_create_disziplin.addItem("Diskus");
choice_create_disziplin.addItem("Speerwurf");
choice_create_disziplin.addItem("Hammerwurf");
label2.setBounds(8, 339, 68, 16);
label2.setText("Anreisetag:");
label2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label2);
choice_create_anreisetag.setBounds(88, 336, 41, 24);
choice_create_anreisetag.add("1");
choice_create_anreisetag.add("2");
choice_create_anreisetag.add("3");
choice_create_anreisetag.add("4");
choice_create_anreisetag.add("5");
choice_create_anreisetag.add("6");
choice_create_anreisetag.add("7");
choice_create_anreisetag.add("8");
choice_create_anreisetag.add("9");
choice_create_anreisetag.add("10");
choice_create_anreisetag.add("11");
choice_create_anreisetag.add("12");
choice_create_anreisetag.add("13");
choice_create_anreisetag.add("14");
choice_create_anreisetag.add("15");
choice_create_anreisetag.add("16");
choice_create_anreisetag.add("17");
choice_create_anreisetag.add("18");
choice_create_anreisetag.add("19");
choice_create_anreisetag.add("20");
choice_create_anreisetag.add("21");
choice_create_anreisetag.add("22");
choice_create_anreisetag.add("23");
choice_create_anreisetag.add("24");
choice_create_anreisetag.add("25");
choice_create_anreisetag.add("26");
choice_create_anreisetag.add("27");
choice_create_anreisetag.add("28");
choice_create_anreisetag.add("29");
choice_create_anreisetag.add("30");
choice_create_anreisetag.add("31");
cp.add(choice_create_anreisetag);
choice_create_anreisemonat.setBounds(144, 336, 105, 24);
choice_create_anreisemonat.add("Januar");
choice_create_anreisemonat.add("Februar");
choice_create_anreisemonat.add("März");
choice_create_anreisemonat.add("April");
choice_create_anreisemonat.add("Mai");
choice_create_anreisemonat.add("Juni");
choice_create_anreisemonat.add("July");
choice_create_anreisemonat.add("August");
choice_create_anreisemonat.add("September");
choice_create_anreisemonat.add("Oktober ");
choice_create_anreisemonat.add("November");
choice_create_anreisemonat.add("Dezember");
cp.add(choice_create_anreisemonat);
label3.setBounds(8, 379, 69, 16);
label3.setText("Abreisetag:");
label3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label3);
choice_create_abreisetag.setBounds(88, 376, 41, 24);
choice_create_abreisetag.add("1");
choice_create_abreisetag.add("2");
choice_create_abreisetag.add("3");
choice_create_abreisetag.add("4");
choice_create_abreisetag.add("5");
choice_create_abreisetag.add("6");
choice_create_abreisetag.add("7");
choice_create_abreisetag.add("8");
choice_create_abreisetag.add("9");
choice_create_abreisetag.add("10");
choice_create_abreisetag.add("11");
choice_create_abreisetag.add("12");
choice_create_abreisetag.add("13");
choice_create_abreisetag.add("14");
choice_create_abreisetag.add("15");
choice_create_abreisetag.add("16");
choice_create_abreisetag.add("17");
choice_create_abreisetag.add("18");
choice_create_abreisetag.add("19");
choice_create_abreisetag.add("20");
choice_create_abreisetag.add("21");
choice_create_abreisetag.add("22");
choice_create_abreisetag.add("23");
choice_create_abreisetag.add("24");
choice_create_abreisetag.add("25");
choice_create_abreisetag.add("26");
choice_create_abreisetag.add("27");
choice_create_abreisetag.add("28");
choice_create_abreisetag.add("29");
choice_create_abreisetag.add("30");
choice_create_abreisetag.add("31");
cp.add(choice_create_abreisetag);
choice_create_abreisemonat.setBounds(144, 376, 105, 24);
choice_create_abreisemonat.add("Januar");
choice_create_abreisemonat.add("Februar");
choice_create_abreisemonat.add("März");
choice_create_abreisemonat.add("April");
choice_create_abreisemonat.add("Mai");
choice_create_abreisemonat.add("Juni");
choice_create_abreisemonat.add("July");
choice_create_abreisemonat.add("August");
choice_create_abreisemonat.add("September");
choice_create_abreisemonat.add("Oktober ");
choice_create_abreisemonat.add("November");
choice_create_abreisemonat.add("Dezember");
cp.add(choice_create_abreisemonat);
label_create_hotel.setBounds(40, 216, 35, 16);
label_create_hotel.setText("Hotel:");
label_create_hotel.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label_create_hotel);
choice_create_hotel.setBounds(88, 216, 353, 24);
cp.add(choice_create_hotel);
label4.setBounds(16, 256, 63, 16);
label4.setText("Zimmerart:");
label4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label4);
choice_create_zimmerart.setBounds(88, 256, 353, 24);
cp.add(choice_create_zimmerart);
choice_create_zimmerart.addItem("Einzelzimmer");
choice_create_zimmerart.addItem("Doppelzimmer");
button_create_athleterstellen.setBounds(368, 344, 153, 41);
button_create_athleterstellen.setLabel("Athleten hinzufügen");
button_create_athleterstellen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button_create_athleterstellen_ActionPerformed(evt);
}
});
cp.add(button_create_athleterstellen);
label_create_zahlweise.setBounds(16, 296, 64, 16);
label_create_zahlweise.setText("Zahlweise:");
label_create_zahlweise.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label_create_zahlweise);
choice_create_zahlweise.setBounds(88, 296, 353, 24);
cp.add(choice_create_zahlweise);
choice_create_zahlweise.addItem("Selbstzahler");
choice_create_zahlweise.addItem("PP Sports");
//ho_erst = new hotel_erstellen("hotel_erstellen");
//ho_erst.setVisible( false );
//a = ho_erst.tabModelhotel.getRowCount();
athlet_erstellen_print.setBounds(560, 368, 65, 25);
athlet_erstellen_print.setLabel("Drucken");
athlet_erstellen_print.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
athlet_erstellen_print_ActionPerformed(evt);
}
});
cp.add(athlet_erstellen_print);
// Ende Komponenten
setResizable(false);
setVisible(true);
//loadTable();
}
// Anfang Methoden
private void saveTable() {
try {
XMLEncoder o = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(filename)));
o.writeObject(tabModel);
o.writeObject(colmodel);
o.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private boolean loadTable() {
try {
XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream(filename)));
tabModel = (DefaultTableModel) d.readObject();
table.setModel(tabModel);
colmodel = (DefaultTableColumnModel) d.readObject();
table.setColumnModel(colmodel);
d.close();
} catch (FileNotFoundException ex) {
return false;
}
return true;
}
public void button_create_athleterstellen_ActionPerformed(ActionEvent evt) {
if(tabelleangelegt == false)
{
Object[] ze = {"","","","","","","","","","",""};
tabModel.addRow(ze);
String name = textField_create_name.getText();
String vorname = textField_create_vorname.getText();
String nationalitaet = textField_create_nationalitaet.getText();
Object[] disziplin = choice_create_disziplin.getSelectedObjects();
Object[] hotel = choice_create_hotel.getSelectedObjects();
Object[] zimmerart = choice_create_zimmerart.getSelectedObjects();
Object[] zahlweise = choice_create_zahlweise.getSelectedObjects();
Object[] anreisetag = choice_create_anreisetag.getSelectedObjects();
Object[] anreisemonat = choice_create_anreisemonat.getSelectedObjects();
Object[] abreisetag = choice_create_abreisetag.getSelectedObjects();
Object[] abreisemonat = choice_create_abreisemonat.getSelectedObjects();
String atag = (String)anreisetag[0];
String amonat =(String)anreisemonat[0];
String anreisedatum = (atag+"."+amonat);
String abtag = (String)abreisetag[0];
String abmonat =(String)abreisemonat[0];
String abreisedatum = (abtag+"."+abmonat);
tabModel.setValueAt(name,x,y);
y++;
tabModel.setValueAt(vorname,x,y);
y++;
tabModel.setValueAt(nationalitaet,x,y);
y++;
tabModel.setValueAt(disziplin[0],x,y);
y++;
if(hotel==null)
{
tabModel.setValueAt("Kein HOTEL!",x,y);
y++;
}
else
{
tabModel.setValueAt(hotel[0],x,y);
y++;
}
tabModel.setValueAt(zimmerart[0],x,y);
y++;
tabModel.setValueAt(zahlweise[0],x,y);
y++;
tabModel.setValueAt(anreisedatum,x,y);
y++;
tabModel.setValueAt(abreisedatum,x,y);
y=1;
x++;
tabelleangelegt = true;
saveTable();
}
else
{
Object[] ze = {"","","","","","","","","","",""};
tabModel.addRow(ze);
String name = textField_create_name.getText();
String vorname = textField_create_vorname.getText();
String nationalitaet = textField_create_nationalitaet.getText();
Object[] disziplin = choice_create_disziplin.getSelectedObjects();
Object[] hotel = choice_create_hotel.getSelectedObjects();
Object[] zimmerart = choice_create_zimmerart.getSelectedObjects();
Object[] zahlweise = choice_create_zahlweise.getSelectedObjects();
Object[] anreisetag = choice_create_anreisetag.getSelectedObjects();
Object[] anreisemonat = choice_create_anreisemonat.getSelectedObjects();
Object[] abreisetag = choice_create_abreisetag.getSelectedObjects();
Object[] abreisemonat = choice_create_abreisemonat.getSelectedObjects();
String atag = (String)anreisetag[0];
String amonat =(String)anreisemonat[0];
String anreisedatum = (atag+"."+amonat);
String abtag = (String)abreisetag[0];
String abmonat =(String)abreisemonat[0];
String abreisedatum = (abtag+"."+abmonat);
tabModel.setValueAt(name,x,y);
y++;
tabModel.setValueAt(vorname,x,y);
y++;
tabModel.setValueAt(nationalitaet,x,y);
y++;
tabModel.setValueAt(disziplin[0],x,y);
y++;
if(hotel==null)
{
tabModel.setValueAt("Kein HOTEL!",x,y);
y++;
}
else
{
tabModel.setValueAt(hotel[0],x,y);
y++;
}
tabModel.setValueAt(zimmerart[0],x,y);
y++;
tabModel.setValueAt(zahlweise[0],x,y);
y++;
tabModel.setValueAt(anreisedatum,x,y);
y++;
tabModel.setValueAt(abreisedatum,x,y);
y=1;
x++;
saveTable();
}
// TODO hier Quelltext einfügen
//saveTable();
}
public void athlet_erstellen_print_ActionPerformed(ActionEvent evt) {
try {
table.print();
} catch (Exception e) {
e.printStackTrace();
}
// TODO hier Quelltext einfügen
}
// Ende Methoden
public static void main(String[] args) {
new athlet_erstellen("Athlet erstellen");
}
}
Gruß, Marco