LoginWindow.java
package com.example.smsapp;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.ui.Window;
import com.vaadin.ui.Button;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Label;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Button.ClickEvent;;
public class LoginWindow extends Window
{
private Button btnLogin = new Button(“Login”);
private TextField login = new TextField ( “Uername”);
private TextField password = new TextField ( “Password”);
SmsappApplication smsapp=new SmsappApplication();
public LoginWindow ()
{
super("Authentication Required !");
setName ( "login" );
initUI();
}
private void initUI ()
{
password.setSecret ( true );
addComponent ( new Label ("Please login in order to use the application") );
addComponent ( new Label () );
addComponent ( login );
addComponent ( password );
addComponent ( btnLogin );
btnLogin.addListener ( new Button.ClickListener()
{
public void buttonClick ( Button.ClickEvent event )
{
try
{
(smsapp.getInstance()).authenticate((String)login.getValue (), (String)password.getValue ());
open ( new ExternalResource((smsapp.getInstance()).getURL()));
}
catch ( Exception e )
{
showNotification ( e.toString ());
}
}
});
}
}
SmsappApplication.java
package com.example.smsapp;
import com.vaadin.Application;
import com.vaadin.service.ApplicationContext;
import com.vaadin.ui.*;
public class SmsappApplication extends Application implements ApplicationContext.TransactionListener{
private static ThreadLocal currentApplication =new ThreadLocal ();
@Override
public void init ()
{
setMainWindow (new LoginWindow());
}
public void transactionStart ( Application application, Object o )
{
if ( application == SmsappApplication.this )
{
currentApplication.set ( this );
}
}
public void transactionEnd ( Application application, Object o )
{
if ( application == SmsappApplication.this )
{
currentApplication.set ( null );
currentApplication.remove ();
}
}
public SmsappApplication getInstance()
{
return currentApplication.get();
}
public void authenticate( String login, String password) throws Exception
{
if ( !"user".equals ( login ) && !password.equals ( "qwerty" ))
{
throw new Exception ("Login failed !");
}
loadProtectedResources();
}
private void loadProtectedResources ()
{
setMainWindow (new LoginWindow());
}
}
when I ran it in my eclipse ,problem came:NULLPOINTEREXCEPTION.I have tried lots of ways,but failed.
I don’t know what’s wrong.