Klasse über Button öffnen

EGJ-Soldier

Mitglied
Hallo zusammen,
ich habe ein Problem. Undzwar will ich per Knopfdruck auf eine andere Klasse zugreifen. Wenn ich das Prog. jedoch laufen lasse. steht in der Kommandozeile "null". woran liegt das.
Hier mein Code, der die Klasse aufrufen soll:

Code:
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class password extends Frame{
  Label      l_name, l_passwort;
  TextField  t_name, t_passwort;
  Button     b_anmelden;
  
  class MeinWindowLauscher extends WindowAdapter{
  	public void windowClosing(WindowEvent e){
  		System.exit(0);
  	}
  }
  
  class Lauscher implements ActionListener{
  	public void actionPerformed(ActionEvent e){
  		try {
  	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  	    Connection con = DriverManager.getConnection("jdbc:odbc:Password");
  	    String strSql = "SELECT * FROM Tabelle1";
  	    Statement stmt = con.createStatement();
  	    ResultSet rs = stmt.executeQuery (strSql);
  	  
  	    
  	    while(rs.next()){
  	    	String name;
    	    String passwort;
  	      
    	    String na =  t_name.getText();
    	    String pa = t_passwort.getText();
    	    
    	    name = rs.getString("Name");
    	    passwort = rs.getString("Passwort");
    	    
    	    if(na.equals(name)){
    	    	if(pa.equals(passwort)){
    	    		
    	    		System.out.println("Ich bekomme einen Verbindung");
    	    		GUIMAskW gui = new GUIMAskW("Eingabe");
    	    		gui.setVisible(true);
    	    		gui.setSize(1030, 130);
    	    		break;
    	    		
    	    	}
    	    	else{
    	    		System.out.println("Das Passwort ist falsch");
    	    	}
    	    }
    	    else{
    	    	System.out.println("Der Name ist falsch");
    	    }
  	    }
  	  }
  	  catch(Exception ex){
  	    System.out.println(ex.getMessage());
  	  }	
  	}
  }
  
  String titel1;
  password(String titel1){
  	super(titel1);
  	
  	l_name = new Label("Name:");
  	l_name.setSize(40, 50);
  	l_name.setLocation(5, 30);
  	
  	t_name = new TextField(5);
  	t_name.setSize(120, 25);
  	t_name.setLocation(75, 42);
  	
  	l_passwort = new Label("Passwort:");
  	l_passwort.setSize(60, 50);
  	l_passwort.setLocation(5, 80);
  	
  	t_passwort = new TextField(5);
  	t_passwort.setEchoChar('*');
  	t_passwort.setSize(120,25);
  	t_passwort.setLocation(75, 92);
  	
  	b_anmelden = new Button("Anmelden");
    b_anmelden.setSize(120,25);
    b_anmelden.setLocation(30, 130);
    
  	
  	
  	setLayout(null);
  	
  	add(l_name);
  	add(t_name);
  	add(l_passwort);
  	add(t_passwort);
  	add(b_anmelden);
  	
  	b_anmelden.addActionListener(new Lauscher());
  	
  	addWindowListener(new MeinWindowLauscher());
  }
  public static void main(String[] args){
  	password fenster = new password("Passwortabfrage");
  	fenster.pack();
  	fenster.setSize(200, 180);
  	fenster.show();
  }
}

Hier der Code der Klasse, die aufgerufen werden soll:

Code:
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class GUIMAskW extends Frame{
  Label      l_fach, l_lehrer, l_tag, l_stunde, l_raum, l_info;
  TextField  t_fach, t_lehrer, t_raum;      
  List       li_stunde, li_tag;
  Button     b_eintrag;
  
  class MeinWindowLauscher extends WindowAdapter{
  	public void windowClosing(WindowEvent e){
  		System.exit(0);
  	}
  }
  
  class Lauscher implements ActionListener{
  	public void actionPerformed(ActionEvent e){
  		
  		  String fach = t_fach.getText();
  		  String lehrer = t_lehrer.getText();
  		  String raum = t_raum.getText();
  		  String tag = li_tag.getSelectedItem();
  		  String stunde = li_stunde.getSelectedItem();
  		  
  		  if(fach.compareTo("") != 0){
  		  	if(lehrer.compareTo("") != 0){
  		  		if(tag != null){
  		  			if(stunde != null){
  		  				if(raum.compareTo("") != 0){
  		  					try {
  		    	        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  		    	        Connection con = DriverManager.getConnection("jdbc:odbc:Stundenplan");
  		    	        String query = "update Tabelle1 " +
  		    	    		               "set "+ tag + " = '" + fach + ""+'_'+""+ lehrer +""+'_'+""+ raum +"' " +
  		    	    		               "where Zeit = '"+ stunde +"'";
  		    	        Statement stmt = con.createStatement();

  		    	        stmt.executeUpdate(query);
  		    	    
  		    	        stmt.close();
  		    	        con.close();
  		    	      }
  		    	      catch(Exception ex){
  		    	        System.out.println(ex.getMessage());
  		    	      }
  		    	      
  		  				}
  		  				else
  	  		  		  t_raum.setBackground(Color.RED);
  		  			}
  		  			else
    		  		  li_stunde.setBackground(Color.RED);
  		  		}
  		  		else
		  				li_tag.setBackground(Color.RED);
  		  	}
  		  	else
	  				t_lehrer.setBackground(Color.RED);
  		  }	
  		  else
  				t_fach.setBackground(Color.RED);
  	}
  }
  
  GUIMAskW(String titel2){
  	super(titel2);
  	
  	l_fach = new Label("Fach:");
  	l_fach.setSize(4, 5);
  	l_fach.setLocation(5, 30);
  	
  	l_lehrer = new Label("Lehrer:");
  	l_lehrer.setSize(40, 50);
  	l_lehrer.setLocation(200, 30);
  	
  	l_tag = new Label("Tag:");
  	l_tag.setSize(40, 50);
  	l_tag.setLocation(400, 30);
  	
  	l_stunde = new Label("Stunde:");
  	l_stunde.setSize(45, 50);
  	l_stunde.setLocation(585, 30);
  	
  	l_raum = new Label("Raum:");
  	l_raum.setSize(40, 50);
  	l_raum.setLocation(800, 30);
  	
  	t_fach = new TextField(4);
  	t_fach.setSize(120, 25);
  	t_fach.setLocation(50,42);
  	
  	t_lehrer = new TextField(3);
  	t_lehrer.setSize(120, 25);
  	t_lehrer.setLocation(255, 42);
  	
  	li_tag = new List();
  	li_tag.setSize(120, 25);
  	li_tag.setLocation(440, 42);
  	
  	li_stunde = new List();
  	li_stunde.setSize(120, 25);
  	li_stunde.setLocation(650, 42);
  	
  	t_raum = new TextField(4);
  	t_raum.setSize(120, 25);
  	t_raum.setLocation(855, 42);
  	
  	b_eintrag = new Button("|Aktualisieren|");
  	b_eintrag.setSize(120, 25);
  	b_eintrag.setLocation(440, 90);
  	
  	setLayout(null);
  	
  	
  	add(l_fach);
  	add(t_fach);
  	add(l_lehrer);
  	add(t_lehrer);
  	add(l_tag);
  	add(li_tag);
  	li_tag.add("Montag");
  	li_tag.add("Dienstag");
  	li_tag.add("Mittwoch");
  	li_tag.add("Donnerstag");
  	li_tag.add("Freitag");
  	
  	add(l_stunde);
  	add(li_stunde);
  	li_stunde.add("1");
  	li_stunde.add("2");
  	li_stunde.add("3");
  	li_stunde.add("4");
  	li_stunde.add("5");
  	li_stunde.add("6");
  	li_stunde.add("7");
  	li_stunde.add("8");
  	li_stunde.add("9");
  	li_stunde.add("10");
  	
  	add(l_raum);
  	add(t_raum);
  	add(b_eintrag);
  	add(l_info);
  	
  	b_eintrag.addActionListener(new Lauscher());		
  	
  	addWindowListener(new MeinWindowLauscher());
  }
  public static void main(String[] args){
  	GUIMAskW fenster = new GUIMAskW("Eingabe");
  	fenster.pack();
  	fenster.setSize(1030, 130);
  	fenster.show();
  }
}

Danke schon mal im voraus

Gruß
EGJ-Soldier
 
Hi Sasha,
danke für deine Antwort

Wo die null ausgegeben wird, da habe ich keine ahnung. Sie wird auf jeden fall im zweiten code ausgegeben. Ich habe es auch schon versucht, es herauszufinden, jedoch war meien Suche erfolglos.

Glaube nicht, das du damit viel anfangen kannst, aber mal sehen, vieleicht ja doch.

MFG
EGJ-Soldier
 
Ändere das mal bitte
Code:
System.out.println(ex.getMessage());
zu
Code:
ex.printStackTrace();

MFG

Sascha
 
Zurück