02-JavaFX-条形码系统-登录页面及登录功能

本文介绍了如何使用JavaFX构建一个条形码系统的登录页面,详细阐述了从导入必要的依赖到编写代码实现登录功能的全过程,包括五个关键步骤。
摘要由CSDN通过智能技术生成

效果图
在这里插入图片描述

Login视图及功能实现

① 导入相关依赖(pom.xml文件)

<dependency>
	<groupId>com.mchange</groupId>
	<artifactId>c3p0</artifactId>
	<version>0.9.5.5</version>
</dependency>

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.49</version>
	<scope>runtime</scope>
</dependency>
<dependency>
	<groupId>commons-dbutils</groupId>
	<artifactId>commons-dbutils</artifactId>
	<version>1.7</version>
</dependency>

<dependency>
	<groupId>commons-codec</groupId>
	<artifactId>commons-codec</artifactId>
	<version>1.15</version>
</dependency>

<dependency>
	<groupId>commons-logging</groupId>
	<artifactId>commons-logging</artifactId>
	<version>1.2</version>
</dependency>

<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>

Main类代码

start方法
private final String APPLICATION_NAME = "xxx心信息系统";

private Stage primaryStage;
private JdbcTemplate jdbcTemplate;

@Override
public void start(Stage primaryStage) throws Exception {
	this.primaryStage = primaryStage;
	this.primaryStage.setTitle(APPLICATION_NAME);
	// 设置程序运行的窗口的icon
	this.primaryStage
			.getIcons()
			.add(new Image(Main.class.getClassLoader().getResourceAsStream("cn/oldsheep/javafx/view/images/xxxxx.png")));
	showLoginView();
}
showLoginView方法
/**
 * Initializes the login view
 */
public void showLoginView() {
	try {
		FXMLLoader loader = viewLoader("LoginView");
		AnchorPane loginView = loader.load();
		primaryStage.setScene(new Scene(loginView));

		LoginViewController controller = loader.getController();
		controller.setMainApp(this);
		controller.setJdbcTemplate(jdbcTemplate);

		primaryStage.setResizable(false); // 禁用最大化
		//primaryStage.initStyle(StageStyle.UNDECORATED); // 没有最大化最小化及关闭按钮
		primaryStage.show();
	} catch (IOException e) {
		AlertUtil.exceptionAlert(e);
	}
}
viewLoader方法
/**
 * Load overview.
 * @param view the specified load view
 * @return view's loader
 */
private FXMLLoader viewLoader(String view) {
	StringBuffer sb = new StringBuffer("view/").append(view).append(".fxml");
	FXMLLoader loader = new FXMLLoader();
	loader.setLocation(Main.class.getResource(sb.toString()));
	return loader;
}

LoginViewController 代码

package cn.oldsheep.javafx.view;

import cn.oldsheep.javafx.Main;
import cn.oldsheep.javafx.dao.JdbcTemplate;
import cn.oldsheep.javafx.model.TBarAccount;
import cn.oldsheep.javafx.utils.AlertUtil;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 登录视图控制器
 * author   : oldsheep
 * qq|wechat: 64341393
 * Create on 2020/12/27.
 */
public class LoginViewController {
    private static Log LOGGER = LogFactory.getLog(LoginViewController.class);
    @FXML
    private PasswordField userPwd;
    @FXML
    private Button loginBtn;
    @FXML
    private TextField userAccount;

    private Main mainApp;
    private JdbcTemplate jdbcTemplate;

    public void setMainApp(Main mainApp) {
        this.mainApp = mainApp;
    }

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @FXML
    private void initialize() {}


    /**
     * login the application
     */
    @FXML
    private void handleLoginApp() {
        if (isInputValid()) {
            final TBarAccount login = jdbcTemplate.login(userAccount.getText(), userPwd.getText());
            if (null != login && 1 == login.getStatus()) {
                // save login status
                mainApp.setLoginUser(login);
                mainApp.showMainView();
                mainApp.showBarCodeView();
                LOGGER.info("login successfully~!");
            } else {
                AlertUtil.errorAlert(new StringBuffer("请输入正确的用户名口令!"));
                this.userAccount.setText(null);
                this.userPwd.setText(null);
            }
        }
    }

    /**
     * Validates the user input in text fields
     * @return true if the input is valid
     */
    private boolean isInputValid() {
        StringBuffer sb = new StringBuffer();
        if (userAccount.getText() == null || userAccount.getText().length() == 0) {
            sb.append("请输入您的账号!\n");
        } else if (userPwd.getText() == null || userPwd.getText().length() == 0) {
            sb.append("请输入您的密码!\n");
        }

        if (sb.toString().length() != 0) {
            AlertUtil.errorAlert(sb);
            return false;
        }
        return true;
    }
}

JdbcTemplate代码

package cn.oldsheep.javafx.dao;

import cn.oldsheep.javafx.model.TBarAccount;
import cn.oldsheep.javafx.model.TBarCode;
import cn.oldsheep.javafx.utils.C3P0Utils;
import cn.oldsheep.javafx.utils.DateUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

/**
 * Created by oldsheep on 20/12/28.
 */
public class JdbcTemplate {

    /* logger */
    private static Log LOG = LogFactory.getLog(JdbcTemplate.class);

    /**
     * 用户账号登录操作
     */
    public TBarAccount login(String userAccount, String pwd) {
        try {
            final QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource());
            String sql = "select * from tb_barAccount where userAccount=? and pwd=? and status = 1";
            final List<TBarAccount> user = runner.query(sql,
                    new BeanListHandler<>(TBarAccount.class), userAccount, DigestUtils.md5Hex(pwd));
            if (user != null && user.size() == 1) {
                return user.get(0);
            }
            return null;
        } catch (SQLException e) {
            // e.printStackTrace();
            LOG.error(e.getMessage() + e.fillInStackTrace());
            return null;
        }
    }
}

TBarAccount代码

package cn.oldsheep.javafx.model;

/**
 * Created by oldsheep on 20/12/28.
 */
public class TBarAccount {

    private String userAccount;
    private String pwd;
    private int status;

    public TBarAccount() {
    }

    public TBarAccount(String userAccount, String pwd, int status) {
        this.userAccount = userAccount;
        this.pwd = pwd;
        this.status = status;
    }

    public String getUserAccount() {
        return userAccount;
    }

    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Eclipse是一个强大的集成开发环境(IDE),广泛用于Java开发。要使用Eclipse配置JavaFX,您需要执行以下步骤: 1. 安装JavaFX SDK:首先,您需要下载JavaFX SDK,并将其安装在您的系统上。您可以从Oracle官网或者其他提供JavaFX SDK的网站下载。 2. 配置Eclipse:启动Eclipse,打开“Window” -> “Preferences” -> “Java” -> “Installed JREs”。点击“Add”按钮,选择“Standard VM”,然后浏览到JavaFX SDK的路径,通常在`<JAVAFX_SDK_HOME>/lib`目录下有jmods文件夹,将其添加为JRE系统库。 3. 修改运行时配置:在Eclipse中创建一个Java项目,然后右键点击项目名,选择“Properties”。在左侧导航栏选择“Java Build Path”,然后切换到“Libraries”标签页。点击“Add Library”,选择“JavaFX”并按照向导完成添加。 4. 添加模块路径:如果您使用的是Java 9及以上版本,需要在“Java Build Path”中添加模块路径。选择“Module Path”标签页,然后添加JavaFX模块路径,通常是`<JAVAFX_SDK_HOME>/jmods`。 5. 更新module-info.java文件(如果使用Java 9及以上版本):创建一个名为`module-info.java`的文件,并在其中声明JavaFX模块依赖,例如: ```java module mymodule { requires javafx.controls; requires javafx.fxml; // 其他需要的依赖... } ``` 6. 配置运行配置:在Eclipse中,右键点击Java文件或项目,选择“Run As” -> “Run Configurations”。在弹出的窗口中,选择您要配置的应用程序,并在“Arguments”标签页中输入VM参数,例如:`--module-path <JAVAFX_SDK_HOME>/jmods --add-modules javafx.controls,javafx.fxml`。 完成以上步骤后,您应该可以在Eclipse中配置并运行JavaFX应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldsheep_cn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值