我对javaFx
有些问题,当我按下“登录”按钮时,它会给我这个错误。
Executing C:\Users\Iuli\Desktop\RAU Social Media\RAU_socialmedia\dist\run1236271702\RAU_socialmedia.jar using platform C:\Program Files\Java\jdk1.8.0_171\jre/bin/java
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
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:394)
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$353(GlassViewEventHandler.java:432)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
at java.lang.Thread.run(Thread.java:748)
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(DelegatingMethodAccessorImpl.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)
... 48 more
Caused by: java.lang.NullPointerException
at rau_socialmedia.FXMLDocumentController.handlelogin(FXMLDocumentController.java:54)
... 58 more
我已经学习javafx
一段时间了,我一直坚持这个错误。我试过,我搜索过,我不明白为什么会出现这种错误。
我会把你放下并放在组件上。
FXMLDocumentController
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package rau_socialmedia;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.*;
import javafx.scene.input.KeyEvent;
import java.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
*
* @author FISHU
*/
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
@FXML
private Label messagelogin;
@FXML
private Label errorlabel;
@FXML
private Label conlabel;
@FXML
private Label txtEmail;
@FXML
private Label txtPass;
private PreparedStatement ppSs;
private Connection con = null;
@FXML
private void handleClose(ActionEvent event)
{
System.exit(0);
}
@FXML
private void handlelogin(ActionEvent event) throws SQLException
{
con = dba.DBCOnnection.pMartConnection();
String sql_query = "SELECT * FROM [login] where email='"+txtEmail.getText()+
"' and parola='"+txtPass.getText()+"' ";
ppSs = con.prepareStatement(sql_query);
boolean status = ppSs.execute();
if(status){
messagelogin.setText("asda");
errorlabel.setOpacity(1);
}
else{
messagelogin.setText("nada");
}
}
@FXML
private void handleregister(ActionEvent event)
{
messagelogin.setText("");
conlabel.setOpacity(1);
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}
rau_socialmedia.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package rau_socialmedia;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
/**
*
* @author FISHU
*/
public class RAU_socialmedia extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
stage.initStyle(StageStyle.UNDECORATED);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
fxmlDocument.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXPasswordField?>
<?import com.jfoenix.controls.JFXTextField?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.effect.BoxBlur?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.text.Font?>
<AnchorPane id="AnchorPane" prefHeight="600.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="rau_socialmedia.FXMLDocumentController">
<children>
<ImageView fitHeight="600.0" fitWidth="1000.0" layoutX="-2.0">
<image>
<Image url="@images/dummy-6.jpg" />
</image>
<effect>
<BoxBlur iterations="2" />
</effect>
</ImageView>
<AnchorPane layoutX="567.0" layoutY="129.0" prefHeight="354.0" prefWidth="401.0">
<children>
<JFXTextField focusColor="#2bc5e7" labelFloat="true" layoutX="26.0" layoutY="49.0" maxWidth="327.0" minWidth="301.0" prefHeight="38.0" prefWidth="318.0" promptText="E-mail" unFocusColor="BLACK" AnchorPane.leftAnchor="25.0" AnchorPane.rightAnchor="25.0">
<font>
<Font name="Times New Roman Bold" size="18.0" />
</font>
</JFXTextField>
<JFXPasswordField focusColor="#2cc7e5" labelFloat="true" layoutX="25.0" layoutY="117.0" maxWidth="318.0" minWidth="165.0" prefHeight="38.0" prefWidth="318.0" promptText="Parolă" unFocusColor="BLACK" AnchorPane.leftAnchor="25.0" AnchorPane.rightAnchor="25.0">
<font>
<Font name="Times New Roman Bold" size="18.0" />
</font>
</JFXPasswordField>
<JFXButton layoutX="34.0" layoutY="202.0" onAction="#handlelogin" prefHeight="32.0" prefWidth="150.0" ripplerFill="#3bbdd7" style="-fx-background-color: #fffcfc;" text="Loghează-te" textFill="#030000" AnchorPane.leftAnchor="25.0">
<font>
<Font name="Times New Roman Bold" size="18.0" />
</font>
</JFXButton>
<JFXButton layoutX="222.0" layoutY="202.0" onAction="#handleregister" prefHeight="32.0" prefWidth="150.0" ripplerFill="#3bbdd7" style="-fx-background-color: #fffcfc;" text="Înregistrează-te" textFill="#030000" AnchorPane.rightAnchor="25.0">
<font>
<Font name="Times New Roman Bold" size="18.0" />
</font>
</JFXButton>
<Label fx:id="errorlabel" layoutX="25.0" layoutY="234.0" opacity="0.0" prefHeight="38.0" prefWidth="351.0" text="Datele introduse nu sunt corecte !" textFill="RED">
<font>
<Font name="Times New Roman Bold" size="20.0" />
</font>
</Label>
<Label fx:id="conlabel" layoutX="25.0" layoutY="288.0" opacity="0.0" prefHeight="57.0" prefWidth="376.0" text="Felicitari, te-ai inregistrat cu succes!">
<font>
<Font name="Times New Roman Bold" size="22.0" />
</font>
</Label>
</children>
</AnchorPane>
<ImageView fitHeight="150.0" fitWidth="200.0" layoutX="27.0" layoutY="108.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@images/logo-URA-2017.png" />
</image>
</ImageView>
<Label fx:id="messagelogin" layoutX="47.0" layoutY="262.0" prefHeight="57.0" prefWidth="150.0" text="Welcome to">
<font>
<Font name="Times New Roman Bold" size="25.0" />
</font>
</Label>
<Label layoutX="41.0" layoutY="289.0" prefHeight="57.0" prefWidth="262.0" text="RAU Social Media">
<font>
<Font name="Times New Roman Bold" size="22.0" />
</font>
</Label>
<Line endX="100.0" layoutX="545.0" layoutY="277.0" rotate="90.0" startX="-100.0" />
<JFXButton layoutX="949.0" layoutY="14.0" onAction="#handleClose" prefHeight="32.0" prefWidth="26.0" ripplerFill="#3bbdd7" style="-fx-background-color: #fffcfc;" text="X" textFill="#030000">
<font>
<Font name="Arial" size="18.0" />
</font>
</JFXButton>
</children>
<opaqueInsets>
<Insets />
</opaqueInsets>
</AnchorPane>
包&gt; dba&gt; DBCOnnection.java
package dba;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Iuli
*/
public class DBCOnnection {
public static Connection pMartConnection(){
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://developbuilding.database.windows.net:1433;database=jdata;user=devbuild@developbuilding;password=Developbuilding@;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
con = DriverManager.getConnection(url);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(DBCOnnection.class.getName()).log(Level.SEVERE, null, ex);
}
return con;
}
}
我的库sqljdbc41.jar
和jfeonix.jar
驱动程序。