为什么我的printwriter会抛出nullpointer错误? [英] Why my printwriter throws an nullpointer error?
问题描述
大家好几天我都遇到这种情况我无法解决我试图用户使用print write将用户输入的文本或数字发送到Server类但是每次我点击提交后都出现错误按钮。
我是java新手请帮助我。
这是Client.Java
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.control。*;
import java.io.IOException;
import java.net。*;
import java.io.PrintWriter;
import java.util.Scanner;
public class 客户扩展应用程序 // 用于GUI
{
private PrintWriter outputToServer; // 向服务器发送消息
private 扫描仪inputFromServer; // 从服务器获取响应
// 私有字符串用户名;
私有套接字套接字;
private static InetAddress host = null;
final int PORT = 1234 ;
public static void main( String [] args){
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException ex){
System.out.println( 找不到主机ID);
}
做 {
launch(args);
} while (true);
}
public void start(阶段阶段) throws 例外{
// 设置变量
socket = new Socket(host,PORT);
// 扫描程序设置,以便它可以扫描来自服务器的任何输入流(响应)
inputFromServer = new Scanner(socket.getInputStream());
outputToServer = new PrintWriter(socket.getOutputStream(),true);
父root = FXMLLoader.load(getClass()。getResource( welcome.fxml跨度>));
场景场景;
scene = new 场景(root, 500 , 500 跨度>);
// 将场景添加到舞台
stage = new Stage();
stage.setScene(场景);
stage.show();
}
@ FXML
private TextField输入;
@ FXML
private void loginButton(ActionEvent event)
{
String t = Input.getText();
// validateUsername(t);
System.out.println(t );
validateUsername(t);
}
@ FXML
private void validateUsername( String username){
if (username.isEmpty()){
// message.setText(Please输入您的用户名);
} else {
// 将用户名发送到服务器
System.out.println(username);
outputToServer.println(username);
字符串 serverRequest = inputFromServer.nextLine();
if (serverRequest.equals( true)){
LoadClient();
}
}
}
private void LoadClient()
{
场景场景;
VBox vbox;
舞台舞台;
按钮收件箱= 新按钮( 收件箱跨度>);
按钮电子邮件= 新按钮( 电子邮件跨度>);
Button quit = new 按钮( 退出跨度>);
inbox.setOnAction(e - > getInbox());
email.setOnAction(e - > getEmail());
quit.setOnAction(e - > quitApp());
// 添加布局按钮
vbox = new VBox();
vbox.getChildren()。add(inbox);
vbox.getChildren()。add(email);
vbox.getChildren()。add(quit);
scene = 新场景(vbox, 500 , 500 跨度>);
stage = new Stage();
stage.setScene(场景);
stage.show();
}
public void getInbox(){
System.out.println( SENDING INBOX REQUEST);
outputToServer.println( get_inbox);
System.out.println( SENDING INBOX REQUEST);
}
public void getEmail(){
outputToServer.println( send_email);
}
public void quitApp(){
outputToServer.println( close);
}
这是Server.java
< pre lang =java> import javafx.fxml.FXML;
import java.io.IOException;
import java.io.Serializable;
import java.lang.reflect.Array;
import java.net.ServerSocket;
import java.util.ArrayList;
import java.net。*;
import java.io. *;
import java.util.Scanner;
public class 服务器 implements Serializable // 用于将对象从客户端发送到服务器
{
// 字符串类型的用户列表
private static ArrayList< String> users = new ArrayList< String>();
private static ArrayList< Email> mails = new ArrayList< Email>();
public static void main( String [] args) throws IOException
{
< span class =code-comment> // 设置3个用户
users.add( U1);
users.add( U2);
users.add( U3);
套接字客户端; // client
ServerSocket serverSocket = null; // server
final int PORT = 1234 ;
ClientHandler clientHandler;
// 设置服务器套接字
尝试
{
serverSocket = new ServerSocket( 1234 跨度>);
}
catch (IOException ioEx)
{
System.out.println( 无法设置端口);
System.exit( 1 );
}
System.out.println( \ n服务器正在运行 跨度>);
do {
client = serverSocket.accept(); // 接受客户端到服务器
// 创建一个验证用户的函数
String validUser = validateUser (客户);
clientHandler = new ClientHandler(validUser,client);
clientHandler.start(); // 调用运行函数
} while (true);
}
private static 字符串 validateUser(套接字客户端)
{
扫描器inputFromClient = null;
PrintWriter outputToClient = null;
boolean validUser = false;
尝试
{
// 允许服务器从客户端检索输入
inputFromClient = new Scanner(client.getInputStream() );
// 允许服务器向客户端发送内容
outputToClient = new PrintWriter(client.getOutputStream(),true);
}
catch (IOException io)
{
System.out.println( 初始化变量的问题);
}
// 从客户端获取输入
String userToValidate = inputFromClient.nextLine();
while (validUser == false)
{
for (字符串用户名:users)
{
// 检查用户验证是否与客户端的用户匹配
if (username.equals(userToValidate))
{
// 告诉客户端用户有效
validUser = true;
break ;
}
}
if (validUser == false)
{
// 用户无效,等待新用户从客户端传递到服务器
outputToClient .println( false);
userToValidate = inputFromClient.nextLine();
}
else
{
outputToClient.println( true);
}
}
// 返回正确的用户名
return userToValidate;
}
// 获取邮件来自服务器,因此可以在clienthandler中访问它
private static ArrayList< ;电子邮件与GT; getMail()
{
return 邮件;
}
}
// 每个客户都有其独特之处用户名
类 ClientHandler extends 线程 implements Serializable
{
private Socket客户端;
// 从客户端检索请求
私人扫描仪输入;
// 向客户发送请求
私人 PrintWriter输出;
private String username;
public ClientHandler( String 用户名,套接字客户端)
{
此 .username = username;
此 .client = client;
System.out.println( BEFORE TRY);
尝试
{
input = 新扫描程序(client.getInputStream) ());
output = new PrintWriter(client.getOutputStream(),true);
}
catch (IOException io)
{
System.out.println( 客户端处理程序未正确设置);
}
}
public void run()
{
// 从服务器接收请求
String request = input.nextLine();
System.out.println(request);
// 检查请求
while (!request.equals( close))
{
// 做任何用户想做的事
if (request.equals( get_inbox))
{
System.out.println( INSIDE INBOX REQUEST);
}
else if (request.equals( send_email))
{
System.out.println( INSIDE SEND EMAIL REQUEST);
}
request = input.nextLine(); // 从服务器获取新请求
}
// 结束客户端连接
尝试
{
System.out.println( 结束连接);
client.close();
}
catch (IOException io)
{
System.out.println( Coulnd close close);
}
}
这是我的错误日志
在javafx.fxml.FXMLLoader $ ControllerMethodEventHandler.handle(FXMLLoader.java: 1657 )
)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java: 86 )
at com.sun.javafx.event.EventHandlerManager。 dispatchBubblingEvent(EventHandlerManager.java: 238 )
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java: 191 )
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java: 59 )
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 58 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent( EventDispatchChainImpl.java:< span class =code-digit> 114
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 56 )com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java: 114 )
com.sun.javafx上的
。 event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 56 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java: 114 )
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java: 74 )
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java: 49 )
at javafx.event.Event.fireEvent( Event.java: 198 )
at javafx.scene.Node.fireEvent(Node.java: 8413 )
at javafx.scene.control.Button.fire(Button.java: 185 )
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java: 182 )
at com.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handle(BehaviorSkinBase.java: 96 )
at com.sun.javafx .scene.control.skin.BehaviorSkinBase $ 1.handle(BehaviorSkinBase.java: 89 )
at com.sun.javafx.event.CompositeEventHandler $ NormalEventHandlerRecord.handleBubblingEvent (CompositeEventHandler.java: 218 )
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java: 80 )
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java: 238 )
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java: 191 )
at com.sun.javafx.event.CompositeEve ntDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java: 59 )
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 58 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java: 114 )
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 56 )
at com.sun.javafx.event.EventDispatchChainImpl。 dispatchEvent(EventDispatchChainImpl.java: 114 )
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 56 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java: 114 )
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java: 74 )com.sun.javafx的
。 event.EventUtil.fireEvent(EventUtil.java: 54 )
at javafx.event.Event.fireEvent(Event.java: 198 )
at javafx.scene.Scene $ MouseHandler.process(Scene.java: 3757 )
at javafx .scene.Scene $ MouseHandler.access $ 1500(Scene.java: 3485 )
at javafx.scene.Scene.impl_processMouseEvent(Scene.java: 1762 )
at javafx.scene.Scene $ ScenePeerListener.mouseEvent(Scene.java: 2494 )
at com.sun.javafx.tk.quantum.GlassViewEventHandler $ MouseEventNotification.run(GlassViewEventHandler.java: 381 )
at com.sun.javafx。 tk.quantum.GlassViewEventHandler $ MouseEventNotification.run(GlassViewEventHandler.java: 295 )
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda $ handleM ouseEvent $ 354(GlassViewEventHandler.java: 417 )
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolki t.java: 389 )
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewE ventHandler.java: 416 )
at com.sun.glass.ui.View.handleMouseEvent(View.java: 555 )
at com.sun.glass .ui.View.notifyMouse(View.java: 937 )
引起:java.lang.reflect.InvocationTargetException
at sun.reflect。 NativeMethodAccessorImpl.invoke0(本机方法)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 )
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImp l.java: 43 )
at java.lang.reflect.Method.invoke(Method.java: 498 )
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java: 71 )
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 )
at java.lang.reflect.Method.invoke(Method.java:< span class =code-digit> 498 )
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java: 275 )
at javafx.fxml.FXMLLoader $ MethodHandler.invoke(FXMLLoader.java: 1769 )
... 45 更多
引起:java.lang.NullPointerException
at Client.validateUsername(Client.java: 112 )
at Client.loginButton(Client.java: 99 )
... 55 mor
我尝试过:
我试图找到问题,但遗憾的是任何c ode我尝试失败了。
ControllerMethodEventHandler.handle(FXMLLoader.java: 1657 )
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java: 86 )
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent( EventHandlerManager.java: 238 )
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java: 191 )
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java: 59 )
at com .sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 58 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl。 java: 114 )com.sun.javafx.event.BasicEven上的
tDispatcher.dispatchEvent(BasicEventDispatcher.java: 56 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java: 114 )
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java: 56 )
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java: 114 )
at com.sun.javafx.event.EventUtil。 fireEventImpl(EventUtil.java: 74 )
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java: 49 )
at javafx.event.Event.fireEvent(Event.java: 198 )
at javafx.scene .Node.fireEvent(Node.java: 8413 )
at javafx.scene.control.Button.fire(Button.java: 185 )
at com.sun.javafx.scene.control.behavior.ButtonBehavior。 mouseReleased(ButtonBehavior.java: 182 )
at com.sun.javafx.scene.control.skin.BehaviorSkinBase
1.handle(BehaviorSkinBase.java: 96 )
at com.sun.javafx.scene.control.skin.BehaviorSkinBase
1.handle(BehaviorSkinBase.java: 89 )
at com.sun.javafx.event.CompositeEventHandler
Hi everyone it's been days that I'm stuck with this situation and I cannot resolve I'm trying to send the user entered text or numbers to the Server class using print write but every time I getting errors after I hit the submit button.
Im new to java please help me.
This is the Client.Java
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.control.*;
import java.io.IOException;
import java.net.*;
import java.io.PrintWriter;
import java.util.Scanner;
public class Client extends Application // for GUI
{
private PrintWriter outputToServer; // send message to server
private Scanner inputFromServer; // gets response back from the server
//private String username;
private Socket socket;
private static InetAddress host = null;
final int PORT = 1234;
public static void main(String[] args) {
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException ex) {
System.out.println("Host ID Not Found");
}
do {
launch(args);
} while (true);
}
public void start(Stage stage) throws Exception {
// set up variables
socket = new Socket(host, PORT);
// scanner set up so that it can scan for any input stream (responses) that come from the server
inputFromServer = new Scanner(socket.getInputStream());
outputToServer = new PrintWriter(socket.getOutputStream(), true);
Parent root = FXMLLoader.load(getClass().getResource("welcome.fxml"));
Scene scene;
scene = new Scene(root, 500, 500);
//add the scene to the stage
stage = new Stage();
stage.setScene(scene);
stage.show();
}
@FXML
private TextField Input;
@FXML
private void loginButton (ActionEvent event)
{
String t = Input.getText();
//validateUsername(t);
System.out.println(t);
validateUsername(t);
}
@FXML
private void validateUsername(String username) {
if (username.isEmpty()) {
// message.setText("Please enter your username");
} else {
// send username across to the server
System.out.println(username);
outputToServer.println(username);
String serverRequest = inputFromServer.nextLine();
if (serverRequest.equals("true")) {
LoadClient();
}
}
}
private void LoadClient()
{
Scene scene;
VBox vbox;
Stage stage;
Button inbox = new Button("Inbox");
Button email = new Button("Email");
Button quit = new Button("Quit");
inbox.setOnAction(e -> getInbox());
email.setOnAction(e -> getEmail());
quit.setOnAction(e -> quitApp());
// add buttons to layout
vbox = new VBox();
vbox.getChildren().add(inbox);
vbox.getChildren().add(email);
vbox.getChildren().add(quit);
scene = new Scene(vbox, 500, 500);
stage = new Stage();
stage.setScene(scene);
stage.show();
}
public void getInbox() {
System.out.println("BEFORE SENDING INBOX REQUEST");
outputToServer.println("get_inbox");
System.out.println("AFTER SENDING INBOX REQUEST");
}
public void getEmail() {
outputToServer.println("send_email");
}
public void quitApp() {
outputToServer.println("close");
}
This is Server.java
import javafx.fxml.FXML;
import java.io.IOException;
import java.io.Serializable;
import java.lang.reflect.Array;
import java.net.ServerSocket;
import java.util.ArrayList;
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class Server implements Serializable // used to send object from client to server
{
// list of users of type string
private static ArrayList<String> users = new ArrayList<String>();
private static ArrayList<Email> mails = new ArrayList<Email>();
public static void main(String[] args) throws IOException
{
// set up 3 users
users.add("U1");
users.add("U2");
users.add("U3");
Socket client; // client
ServerSocket serverSocket = null; // server
final int PORT = 1234;
ClientHandler clientHandler;
// set up the server socket
try
{
serverSocket = new ServerSocket(1234);
}
catch (IOException ioEx)
{
System.out.println("Can't set up port");
System.exit(1);
}
System.out.println("\n Server running");
do {
client = serverSocket.accept(); // accept the client to the server
// create a function that will validate the user
String validUser = validateUser(client);
clientHandler = new ClientHandler(validUser, client);
clientHandler.start(); // calls the run function
} while (true);
}
private static String validateUser(Socket client)
{
Scanner inputFromClient = null;
PrintWriter outputToClient = null;
boolean validUser = false;
try
{
// allows the server to retrieve the input from the client
inputFromClient = new Scanner(client.getInputStream());
// allow server to send things to the client
outputToClient = new PrintWriter(client.getOutputStream(), true);
}
catch(IOException io)
{
System.out.println("Problem initialising variables");
}
// get the input from the client
String userToValidate = inputFromClient.nextLine();
while (validUser == false)
{
for(String username : users)
{
// check the user to validate matches the user from the client
if (username.equals(userToValidate))
{
// tell the client that user is valid
validUser = true;
break;
}
}
if(validUser == false)
{
// user is invalid so wait for a new user to pass from the client to the server
outputToClient.println("false");
userToValidate = inputFromClient.nextLine();
}
else
{
outputToClient.println("true");
}
}
// return the correct username
return userToValidate;
}
// get the mail from the server so it can be accessed in the clienthandler
private static ArrayList<Email> getMail()
{
return mails;
}
}
// each client will have their unique username
class ClientHandler extends Thread implements Serializable
{
private Socket client;
// retrieve requests from the client
private Scanner input;
// send requests to the client
private PrintWriter output;
private String username;
public ClientHandler(String username, Socket client)
{
this.username = username;
this.client = client;
System.out.println("BEFORE TRY");
try
{
input = new Scanner(client.getInputStream());
output = new PrintWriter(client.getOutputStream(), true);
}
catch(IOException io)
{
System.out.println("Client Handler not set up properly");
}
}
public void run()
{
// recieve request from the server
String request = input.nextLine();
System.out.println(request);
// check the request
while(!request.equals("close"))
{
// do whatever the user wants to do
if (request.equals("get_inbox"))
{
System.out.println("INSIDE INBOX REQUEST");
}
else if (request.equals("send_email"))
{
System.out.println("INSIDE SEND EMAIL REQUEST");
}
request = input.nextLine(); // get new request from server
}
// end the client connection
try
{
System.out.println("Ending connection");
client.close();
}
catch(IOException io)
{
System.out.println("Coulnd't close connection");
}
}
And this is my error log
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8413)
at javafx.scene.control.Button.fire(Button.java:185)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run( GlassViewEventHandler.java:381)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run( GlassViewEventHandler.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354 (GlassViewEventHandler.java:417)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolki t.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewE ventHandler.java:416)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
... 45 more
Caused by: java.lang.NullPointerException
at Client.validateUsername(Client.java:112)
at Client.loginButton(Client.java:99)
... 55 mor
What I have tried:
I tried to find the problem but sadly any code I tried failed.
ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8413) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase
1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase
1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler
这篇关于为什么我的printwriter会抛出nullpointer错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!