java - 将文本框的文本与导致异常的字符串进行比较
问题描述
我正在使用带有jfeonix
库的场景构建器来制作登录屏幕。但是当我比较文本字段的文本 ieusername
和password
字符串时,它会导致异常。请帮助我解决这个问题。如果用户名和密码匹配,则应打印“登录成功”。
FXML 代码:
<children>
<JFXTextField fx:id="useri" focusColor="WHITE" layoutX="84.0" layoutY="390.0" prefHeight="34.0" prefWidth="169.0" promptText="Username" style="-fx-prompt-text-fill: white; -fx-text-fill: white;" unFocusColor="#8a87e8">
</JFXTextField>
<JFXButton fx:id="loginbutton" layoutX="82.0" layoutY="495.0" onAction="#logina" prefHeight="34.0" prefWidth="170.0" style="-fx-background-color: blue; -fx-cursor: hand;" styleClass="header-section" stylesheets="@../../../../../Downloads/un.css" text="Login" textFill="#fffefe">
<font>
<Font name="System Bold" size="14.0" />
</font>
</JFXButton>
<JFXPasswordField fx:id="pass" focusColor="WHITE" layoutX="83.0" layoutY="439.0" prefHeight="34.0" prefWidth="170.0" promptText="Password" style="-fx-prompt-text-fill: white; -fx-text-fill: white;" unFocusColor="#688eff">
</JFXPasswordField>
<ImageView fitHeight="150.0" fitWidth="200.0" layoutX="82.0" layoutY="53.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Untitled-2.jpg" />
</image>
</ImageView>
<ImageView fitHeight="26.0" fitWidth="26.0" layoutX="43.0" layoutY="443.0">
<image>
<Image url="@icons8_Lock_100px_1.png" />
</image>
</ImageView>
<ImageView fitHeight="26.0" fitWidth="26.0" layoutX="43.0" layoutY="394.0">
<image>
<Image url="@icons8_User_Menu_Male_100px_1.png" />
</image>
</ImageView>
<ImageView layoutX="114.0" layoutY="246.0">
<image>
<Image url="@icons8_Male_User_100px_1.png" />
</image>
</ImageView>
</children>
</AnchorPane>
<ImageView fx:id="closebutton" accessibleRole="BUTTON" fitHeight="34.0" fitWidth="70.0" layoutX="862.0" layoutY="14.0" onMouseClicked="#closebuttonaction" pickOnBounds="true" preserveRatio="true" style="-fx-cursor: hand;">
<image>
<Image url="@icons8_Close_Window_100px.png" />
</image>
</ImageView>
</children>
FXML 控制器代码:
package javafxapplication18;
import java.awt.Cursor;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javafx.util.Duration;
import com.jfoenix.controls.*;
import javafx.event.EventHandler;
public class FXMLDocumentController implements Initializable {
@FXML
private Button closebutton;
private JFXTextField useri;
private JFXPasswordField pass;
private JFXButton loginbutton;
@FXML
private void handleButtonAction(ActionEvent event) {
}
@FXML
private void closebuttonaction(){
Platform.exit();
}
@FXML
private void logina(){
if (useri.getText().equals("admin")){
System.out.println("login successful");
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}
解决方案
问题是您错过了在 FXMLDocumentController 中初始化的字段上方的 @FXML 注释。所以异常的原因是“useri”没有初始化,我猜这个异常是 NullPointerException
public class FXMLDocumentController implements Initializable {
@FXML
private Button closebutton;
@FXML
private JFXTextField useri;
@FXML
private JFXPasswordField pass;
@FXML
private JFXButton loginbutton;
推荐阅读
- postgresql - PostgreSQL 函数导出
- tfs - TFS 上一个/下一个冲刺 URL
- c# - Xml 序列化程序异常未在任务 C# 中捕获
- firebase - 替代 query.orderByChild == auth.uid 的 Firebase 规则
- sql-server - 为每个连接设置用户权限?
- c# - Does volatile prevent introduced reads or writes?
- asp.net-mvc - IdentityServer3 为授权端点返回 invalid_scope
- c# - 在 Visual Studio 中进行负载测试。什么是错误/秒属性?
- c# - 我可以用 LINQ 以更紧凑的方式编写这个 for 循环吗?
- java - 删除文件时通知 Apache Camel