JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)

这篇具有很好参考价值的文章主要介绍了JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ChoiceBox控件负责选择合适的选项,单独使用JAVAFX很容易实现。但如果使用到scenebuiler,ChoiceBox控件操作则较为麻烦,为了学会这个控件的基本使用,我搜寻了很多资料,希望能帮到大家。控件效果展示如下。
JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)
首先放置控件至合适位置后,将生成的Controller类的代码复制至相应的Controller中,具体教程见

scenebuilder教程-与Controller类进行绑定文章来源地址https://www.toymoban.com/news/detail-508078.html

JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)
之后设立字符串数组如下所示
private String[] ID = { "生活管家", "后勤管家", "管理员" };
在类后面加上 implements Initializable点击黄色的灯泡图标,会自动补全initialize方法,initialize方法负责执行在页面打开前的各种操作
public class MainpageController implements Initializable 
initialize方法内部如下所示,其中choiceBox1.getItems().addAll(ID)负责将字符串内容添加至ChoiceBox空间中,choiceBox1.getSelectionModel().select(0)负责选中ChoiceBox控件中第一个子项,而choiceBox1.setOnAction(this::getID)负责绑定页面操作,getID方法会在下文介绍
public void initialize(URL arg0, ResourceBundle arg1) {
     choiceBox1.getItems().addAll(ID);
     choiceBox1.getSelectionModel().select(0);// TODO Auto-generated method stub
     choiceBox1.setOnAction(this::getID);
}
getID方法如下所示,负责获取ChoiceBox控件中的内容并返回
public String getID(ActionEvent event) {
    String myID = choiceBox1.getValue();
    return myID;
}
完成代码如下所示
package Controller;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;

import Model_File.ServantFile;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
/**
 * 主页面控制页面
 * @author wjz
 *
 */
public class MainpageController implements Initializable {

    @FXML
    private Button button2;

    @FXML
    private Button button3;

    @FXML
    private TextField textField1;

    @FXML
    private PasswordField passWordField1;

    @FXML
    private Button button1;

    @FXML
    private ChoiceBox<String> choiceBox1;

    private String[] ID = { "生活管家", "后勤管家", "管理员" };
/**
 * 用户账号
 */
    public static String pac;
    /**
     * 用户密码
     */
    public static String acc;
    @FXML
    void buttonAction1(ActionEvent event) throws IOException {
        String account = textField1.getText();
        String password = passWordField1.getText();
        acc = account;
        pac = password;
        ServantFile servantFile = ServantFile.getServantFile();
        switch (getID(event)) {
        case "生活管家":
            if (servantFile.otherEqual(account, password)) {
                Stage stage = (Stage) button1.getScene().getWindow();
                stage.close();
                LifeMangementController lmc = new LifeMangementController();
                lmc.start(stage);
                break;
            } else if (!servantFile.unOtherEqual1(account, password)) {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("账号输入错误");
                alert.setContentText("请重新输入");
                alert.showAndWait();
                break;
            } else if (!servantFile.unOtherEqual2(account, password)) {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("密码输入错误");
                alert.setContentText("请重新输入");
                alert.showAndWait();
                break;
            } else {
                Alert alert = new Alert(AlertType.WARNING); 
                alert.setTitle("错误");
                alert.setHeaderText("未知错误");
                alert.setContentText("请重新输入┖");
                alert.showAndWait();
                break;
            }
        case "后勤管家":
            if (servantFile.otherEqual(account, password)) {
                Stage stage = (Stage) button1.getScene().getWindow();
                stage.close();
                LogisticsController lc = new LogisticsController(); 
                lc.start(stage);
                break;
            } else if (!servantFile.unOtherEqual1(account, password)) {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("账号输入错误");
                alert.setContentText("请重新输入");
                alert.showAndWait();
                break;
            } else if (!servantFile.unOtherEqual2(account, password)) {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("密码输入错误");
                alert.setContentText("请重新输入"); 
                alert.showAndWait();
                break;
            } else {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("未知错误");
                alert.setContentText("请重新输入┖");
                alert.showAndWait();
                break;
            }
        case "管理员":
            if (account.equals("1111") && password.equals("1111")) {
                Stage stage = (Stage) button1.getScene().getWindow();
                stage.close();
                AdminController aC = new AdminController();
                aC.start(stage); 
                break;
            } else if (!account.equals("1111")) {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("账号输入错误");
                alert.setContentText("请重新输入");
                alert.showAndWait();
                break;
            } else if (!password.equals("1111")) {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("密码输入错误");
                alert.setContentText("请重新输入");
                alert.showAndWait();
                break;
            } else {
                Alert alert = new Alert(AlertType.WARNING);
                alert.setTitle("错误");
                alert.setHeaderText("未知错误");
                alert.setContentText("请重新输入┖");
                alert.showAndWait();
                break;
            }
        }
    }

    @FXML
    void buttonAction3(ActionEvent event) {
        Stage stage = (Stage) button3.getScene().getWindow();
        stage.close();
    }

    @FXML
    void buttonAction2(ActionEvent event) {
        textField1.clear();
        passWordField1.clear();  
    }
/**
 * 在选择框中添加元素
 */
    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        choiceBox1.getItems().addAll(ID);
        choiceBox1.getSelectionModel().select(0);// TODO Auto-generated method stub
        choiceBox1.setOnAction(this::getID);
    }

    public String getID(ActionEvent event) {
        String myID = choiceBox1.getValue();
        return myID;
    }

}

到了这里,关于JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaFx 用户界面控件3——TableView

    ableView是JavaFX提供的一个强大的控件,可以用于显示表格数据。它通过为TableView设定items属性(存储行数据的ObservableList对象)和列属性(TableColumn对象)来完成数据填充与展示。 以下是一个简单的TableView的使用示例:  1.1 TableView 选中事件 演示应用程序是一个 TableView 和一对

    2024年02月07日
    浏览(48)
  • JavaFx基础学习【四】:UI控件的通用属性

    目录 前言 一、介绍  二、继承关系 三、常用通用属性 四、属性Properties 五、属性绑定 六、属性监听 七、事件驱动 八、其他章节 如果你还没有看过前面的文章,可以通过以下链接快速前往学习: JavaFx基础学习【一】:基本认识_明天再去学习的博客-CSDN博客 JavaFx基础学习【

    2024年02月12日
    浏览(37)
  • 基于JavaFX的扫雷游戏实现(五)——设置和自定义控件

      它来了它来了,最后一期终于来了。理论上该讲的全都讲完了,只剩下那个拖了好几期的自定义控件和一个比较没有存在感的设置功能没有讲。所以这次就重点介绍它们俩吧。   首先我们快速浏览下设置的实现,上图:   然后是控制器代码: SettingsController.java   

    2024年02月13日
    浏览(35)
  • JavaFx程序使用Gloun打包成Android平台App教程

    !!! 适合有Maven基础,对JavaFx或JavaFX移动端感兴趣的朋友 提示必须在Linux环境下进行,可以使用虚拟机 推荐使用CentOS系统进行,虚拟机硬盘大小推荐最少给30G 不要像我一样,搞一半又去给文件系统根目录扩大容量 如果容量不够可以看篇博客: https://blog.csdn.net/m0_58042817/article/detai

    2024年02月05日
    浏览(81)
  • GraalVM详细安装及打包springboot、java、javafx使用教程(环境安装篇)

    下一篇:GraalVM详细安装及打包springboot、java、javafx使用教程(打包普通JAVA项目篇) GraalVM是一款由Oracle公司开发的一款具有高效性能、降低基础设施成本、支持Java发展、与其他编程语言无缝集成、创建本机镜像等优点的跨平台虚拟机。它支持多种编程语言,如Java、JavaScript、Rub

    2024年04月26日
    浏览(38)
  • 全面详细的JavaFX国语核心教程(持续更新)

    本文已放到GitHub仓库中,本人近期没时间维护,道友们可以积极推送。 创建完成之后直接运行即可: 前置条件(必须) 电脑内有版本大于等于11(建议使用11或17长期支持版本)的jdk 环境变量JAVA_HOME设置的的jdk版本也要大于等于11 通过Maven原型创建项目: 如果在第四步中找不

    2024年02月10日
    浏览(52)
  • 超详细的JavaFX项目的创建、构建、打包教程

    目录         零、前言         一、创建JavaFX项目         二、构建JavaFX项目为jar         三、打包JavaFX项目为exe         四、总结 零、前言 最近写了一些JavaFX的程序,并将它们打包,过程中看了不少网上的博客与教程。对于开发经验不多的我来说,解决

    2024年02月02日
    浏览(31)
  • Word控件Aspose.Words教程:使用 C# 读取 SXC 和 FODS 文件

    Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格

    2024年02月10日
    浏览(50)
  • Qt强大控件:Qt-Advanced-Docking-System介绍及使用教程

    QT自带的Dock布局管理大家都用过,中规中矩,但是满足不了现在ui强大的人机交互需求。而Qt-Advanced-Docking-System在Dock的基础上进一步完善功能,具有更高的自由度、灵活性和可扩展性,满足程序员对人机交互的自由定义。这个开源控件类似于Devexpress中的DockPanel。 免费下载 在

    2024年02月08日
    浏览(67)
  • javaFX安装及使用

    Jdk 从 1.8 开始 jdk 自带 JavaFX,到 Jdk 11 开始 jdk 不再内置 JavaFX,所以如果你使用的是高版本的 jdk 在使用 javaFX 的时候就需要先安装 javaFX,并在 idea 里进行配置。 本文主要是对高版本 jdk 安装配置 javaFX 进行讲解,在本文开始前,你的电脑安装的 jdk 版本应该大于等于 17 。 如果

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包