2012-04-04 7 views
0

This is a login form for a slot machine game which will evoke a "NextPage" object. Idon't think this LoginDemo.java code has to do anything with the error but I prefer topost the entire code. Thanks in advance..Nullpointer bei actionPerformed

//LoginDemo.java 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

class Login extends JFrame implements ActionListener 
{ 
    JButton SUBMIT; 
    JPanel panel; 
    JLabel label1,label2; 
    final JTextField text1,text2; 
    Login() 
    { 
     label1 = new JLabel(); 
     label1.setText("Username:"); 
     label1.setBounds(50,50,100,30); 
     text1 = new JTextField(15); 
     text1.setBounds(250,50,100,30); 
     label2 = new JLabel(); 
     label2.setText("Password:"); 
     label2.setBounds(50,250,100,30); 
     text2 = new JPasswordField(15); 
     text2.setBounds(250,250,100,30); 
     //this.setLayout(new BorderLayout()); 

     SUBMIT=new JButton("SUBMIT"); 
     SUBMIT.setBounds(350,350,100,30); 

     //  panel=new JPanel(new GridLayout(3,1)); 
      panel=new JPanel(null); 
     panel.setBounds(50,50,1000,1000); 
     // panel.setLayout(new FlowLayout()); 
     panel.add(label1); 
     panel.add(text1); 
     panel.add(label2); 
     panel.add(text2); 
     panel.add(SUBMIT); 
      add(panel,BorderLayout.CENTER); 
       SUBMIT.addActionListener(this); 
       setTitle("LOGIN FORM"); 
    } 
    public void actionPerformed(ActionEvent ae) 
    { 
     String value1=text1.getText(); 
     String value2=text2.getText(); 
     if (value1.equals("a") && value2.equals("a")) 
     { 
      NextPage page=new NextPage(); 
      page.setVisible(true); 
      //JLabel label = new JLabel("Welcome:"+value1); 
       // page.getContentPane().add(label); 
      setVisible(false); 
     } 
     else 
     { 
      //System.out.println("enter the valid username and password"); 
      JOptionPane.showMessageDialog(this,"Incorrect login or password","Error",JOptionPane.ERROR_MESSAGE); 
     } 
    } 
} 
class LoginDemo 
{ 
    public static void main(String arg[]) 
{ 
    try 
    { 
     Login frame=new Login(); 
     frame.setSize(1000,1000); 
     frame.setVisible(true); 
    } 
    catch(Exception e) 
    { 
     JOptionPane.showMessageDialog(null, e.getMessage()); 
    } 

    } 
} 



    //NextPage.java 

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 
import java.util.Random; 
import java.sql.*; 
import java.lang.*; 
import java.awt.image.*; 
import java.awt.image.BufferedImage; 
import javax.imageio.ImageIO; 
import java.io.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class NextPage extends JFrame implements Runnable, ActionListener 
{ 
     BufferedImage img1,i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,star1; 
    JFrame f1; 
    Thread t1,t2,t3; 
    int x1,y1,i,j,k,l,m,n,r1,r2,r3; 
    JButton b1; 
    Random r=new Random(); 
    TextField tf1; 
     JPanel p1; 

    NextPage() 
    { 
     setBounds(50,50,1000,1000); 
     p1=(JPanel)(getContentPane()); 
     p1.setBounds(50,50,1000, 1000); 
     p1.setLayout(null); 
     //tf1=new TextField(20); 
     //tf1.setBounds(50,50,100,30); 
     setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 
     setTitle("Welcome"); 

     b1=new JButton("START"); 

     //p1.add(tf1); 

     b1.setBounds(150,400,100,30); 
     //try{ 
     b1.addActionListener(this); 
     //} 
     /*catch(Exception e) 
     { 
      System.out.println(""+e); 
     }*/ 
     add(b1); 
     setVisible(true); 
     try 
     {  
      i0=ImageIO.read(new File("tea.jpg")); 
       i1=ImageIO.read(new File("coffee.jpg")); 
      i2=ImageIO.read(new File("bhel.jpg")); 
      i3=ImageIO.read(new File("pizza.jpg")); 
      i4=ImageIO.read(new File("icecream.jpg")); 
      i5=ImageIO.read(new File("dosa.jpg")); 
      i6=ImageIO.read(new File("idli.jpg")); 
      i7=ImageIO.read(new File("panipuri.jpg")); 
      i8=ImageIO.read(new File("orange.jpg")); 
      i9=ImageIO.read(new File("watermelon.jpg")); 
      i10=ImageIO.read(new File("pavbhaji.jpg"));  
      i11=ImageIO.read(new File("noodles.jpg")); 
      i12=ImageIO.read(new File("sandwich.jpg"));  
     } 
     catch (IOException ie) 
     { 
      System.out.println("Error:"+ie.getMessage()); 
     } 

     j=0; m=0; n=0; 

     r1= r.nextInt(13); 
     r2= r.nextInt(13); 
     r3= r.nextInt(13); 

    } 
    public void init() 
    { 
     t1=new Thread(this); 
     t2=new Thread(this); 
     t3=new Thread(this); 
    } 

    public void start() 
    { 
     t2.start(); 
     t3.start(); 
    } 
    public void run() 
    { 
     try 
     { 
      if(Thread.currentThread()==t1) 
      for(j=0; j<150; j++) 
      //for(i=0; i<=150; i+=20) 
      { 
       r1= r.nextInt(13); 
       repaint(); 
       t1.sleep(10); 
      } 

      if(Thread.currentThread()==t2) 
      for(m=0; m<160; m++) 
      //for(k=0; k<=150; k+=20) 
      { 
       r2= r.nextInt(13); 
       repaint(); 
       t2.sleep(10); 
      } 
      if(Thread.currentThread()==t3) 
      for(n=0; n<170; n++) 
      //for(l=0; l<=150; l+=20) 
      { 
       r3= r.nextInt(13); 
       repaint(); 
       t3.sleep(10); 
      } 
     } 
     catch(Exception e) 
     { 
      System.out.println(""+e); 
     } 

    } 

    public void paint(Graphics g) 
    { 
     g.setColor(Color.blue); 

     g.drawRect(50,300,150,80); 
     g.drawRect(200,300,150,80); 
     g.drawRect(350,300,150,80); 

      switch(r1) 
      { 
       case 0: g.drawImage(i0,65,300,this); 
       break; 
       case 1: g.drawImage(i1,65,300,this); 
       break; 
       case 2: g.drawImage(i2,65,300,this); 
       break; 
       case 3: g.drawImage(i3,65,300,this); 
       break; 
       case 4: g.drawImage(i4,65,300,this); 
       break; 
       case 5: g.drawImage(i5,65,300,this); 
       break; 
       case 6: g.drawImage(i6,65,300,this); 
       break; 
       case 7: g.drawImage(i7,65,300,this); 
       break; 
       case 8: g.drawImage(i8,65,300,this); 
       break; 
       case 9: g.drawImage(i9,65,300,this); 
       break; 
       case 10: g.drawImage(i10,65,300,this); 
       break; 
       case 11: g.drawImage(i11,65,300,this); 
       break; 
       case 12: g.drawImage(i12,65,300,this); 
       break; 
      } 

      switch(r2) 
      { 
       case 0: g.drawImage(i0,215,300,this); 
       break; 
       case 1: g.drawImage(i1,215,300,this); 
       break; 
       case 2: g.drawImage(i2,215,300,this); 
       break; 
       case 3: g.drawImage(i3,215,300,this); 
       break; 
       case 4: g.drawImage(i4,215,300,this); 
       break; 
       case 5: g.drawImage(i5,215,300,this); 
       break; 
       case 6: g.drawImage(i6,215,300,this); 
       break; 
       case 7: g.drawImage(i7,215,300,this); 
       break; 
       case 8: g.drawImage(i8,215,300,this); 
       break; 
       case 9: g.drawImage(i9,215,300,this); 
       break; 
       case 10: g.drawImage(i10,215,300,this); 
       break; 
       case 11: g.drawImage(i11,215,300,this); 
       break; 
       case 12: g.drawImage(i12,215,300,this); 
       break; 
      } 

      switch(r3) 
      { 
       case 0: g.drawImage(i0,365,300,this); 
       break; 
       case 1: g.drawImage(i1,365,300,this); 
       break; 
       case 2: g.drawImage(i2,365,300,this); 
       break; 
       case 3: g.drawImage(i3,365,300,this); 
       break; 
       case 4: g.drawImage(i4,365,300,this); 
       break; 
       case 5: g.drawImage(i5,365,300,this); 
       break; 
       case 6: g.drawImage(i6,365,300,this); 
       break; 
       case 7: g.drawImage(i7,365,300,this); 
       break; 
       case 8: g.drawImage(i8,365,300,this); 
       break; 
       case 9: g.drawImage(i9,365,300,this); 
       break; 
       case 10: g.drawImage(i10,365,300,this); 
       break; 
       case 11: g.drawImage(i11,365,300,this); 
       break; 
       case 12: g.drawImage(i12,365,300,this); 
       break; 
      } 
     } 
     public void actionPerformed(ActionEvent ae) 
     { 
      if(ae.getSource()==b1) 
      t1.start(); 
     } 

     /*public static void main(String args[]) 
     { 
      NextPage o=new NextPage(); 
     }*/ 
    } 
} 

Here are the exceptions that I get-

F:\java\jdk\bin>java LoginDemo Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at NextPage.actionPerformed(NextPage.java:235) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) in swing at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) atjavax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) atjavax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6289) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85)

at java.awt.EventQueue$1.run(EventQueue.java:603)

at java.awt.EventQueue$1.run(EventQueue.java:601)

at java.security.AccessController.doPrivileged(Native Method)

atjava.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87

at

java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98

at java.awt.EventQueue$2.run(EventQueue.java:617)

at java.awt.EventQueue$2.run(EventQueue.java:615)

at java.security.AccessController.doPrivileged(Native Method)

atjava.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87

at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Can't get any solution.. I am a learner..please help..

Antwort

0

Sie haben die Variable t1 verwendet, um den Thread zu starten, der dieser Variablen zugewiesen werden soll. Die Funktion init(), die die Instanz des Threads erstellt, der dieser Variablen zugewiesen ist, wird jedoch nie aufgerufen. Dort für t1 ist null und Aufruf einer Funktion auf einem null Objekt verursacht die NullPointerException. Rufen Sie einfach die init() Funktion an. Ich denke, die ursprüngliche Idee war, es im Konstruktor zu nennen, und Sie haben einfach vergessen, es einzufügen.

Bei zukünftigen Fragen sollten Sie nur die Zeilen in der Nähe des Punktes posten, an dem der StackTrace den Fehler meldet. Um zu sehen, dass interessante Orte in den StackTrace schauen, suchen Sie nach Einträgen in Klassen, die Sie geschrieben haben. In diesem Fall ist NextPage.actionPerformed(NextPage.java:235) ein Punkt von Interesse. In Ihrer Frage markieren Sie diese Stellen am besten, um schnell eine gute Auflösung zu erhalten.

0

Sie rufen Sie nicht die init Methode, damit Ihre t1 Variable ist noch null, wenn Sie die actionPerformed Methode eingeben.

Dies ist ziemlich offensichtlich von der Stacktrace (es gibt nur eine Sache, die null in dieser Zeile sein kann), und wenn nicht offensichtlich aus dem Stacktrace hätte ein Debugger dies sofort gezeigt. Viel schneller, als einen Post mit Hunderten von irrelevanten Codezeilen zu erstellen

+0

Vielen Dank..und Entschuldigung für dumm zu sein: P – Sally

+0

@Sally Ich wollte nicht sagen, dass es dumm war, sondern darauf hinweisen, dass Sie besser lernen, eine Stack-Trace zu analysieren und einen Debugger zu verwenden. Es spart Ihnen viel Zeit in der Zukunft. Und der Teil über das Veröffentlichen von relevantem Code ist wirklich zu Ihrem Besten gedacht. Wenn wir ein paar 100 Zeilen Code durchgehen müssen, die für die Frage irrelevant sind, werden wir schnell zur nächsten Frage übergehen. – Robin

+0

Ich werde das sicherlich lernen. Ich bin ein Anfänger und weiß nicht viel davon. Vielen dank für Deine Hilfe. Ich werde Ihre Vorschläge umsetzen. – Sally

Verwandte Themen