【问题标题】:How do i connect a JavaFX FXML checkbox to a MySQL database? [closed]如何将 JavaFX FXML 复选框连接到 MySQL 数据库? [关闭]
【发布时间】:2021-01-22 12:51:20
【问题描述】:

我是一个尝试在 JavaFX 应用程序中制作复选框的初学者,有人可以告诉我如何使用此复选框方法连接到我的数据库:

    @FXML
    private void handleOptions(ActionEvent e){
        String message= "";
        if(checkFc.isSelected()){
            message += checkFc.getText();
            return;
        }

我想将复选框的值应用到此方法中:

public void addUsers (){    
    conn = mysqlconnect.ConnectDb();
    String sql = "insert into users (username,password,email,fc)values(?,?,?,? )";
    try {
        pst = conn.prepareStatement(sql);
        pst.setString(1, txtUsername.getText());
        pst.setString(2, txtPassword.getText());
        pst.setString(3, txtEmail.getText());
        pst.setString(4, checkFc.getText());

getText 方法,虽然它有效,但无论是否选中复选框,它都会获取值,在调用 handleOptions 方法时,我得到 cannot resolve 方法,这是有道理的,因为这些是准备好的语句,所以是否有使我的方法成为preparedStatement 的方法,或者我可以完全以另一种方式连接我的方法,我真的需要这方面的帮助。

【问题讨论】:

  • 不清楚你想在这里做什么。如果选中复选框,您想为fc 列设置什么,如果未选中,您想为fc 列设置什么?当然,只需在 addUsers() 方法中使用 if (checkFc.isSelected()) { ... }. else { ... } 即可达到您想要的效果。
  • minimal reproducible example please:它应该展示您想要实现的目标以及它如何无法按预期工作
  • @James_D 如果复选框被选中,它会在其列中设置复选框的文本(或标题),如果未选中,它的 null 使列为空,这不是复选框的作用?如果选中则获取一个值,如果未选中则没有,您能否详细说明一下方法中的 if 语句,因为我做了,但它什么也没改变,可能是我没有正确执行,我只是在 public 下写了 if 语句void add line,运行它并没有任何改变。
  • 我不知道你的问题是什么。 checkBox.getText() 获取复选框的文本,不管它是否被选中。如果无法将“如果复选框被选中,则将第 4 个参数设置为复选框的文本,否则将其设置为 null”转换为代码,我不确定是否有人可以帮助您。
  • 好的,看我的回答。但我认为你基本上是在这个网站上问“我如何使用if 声明”,这太疯狂了。

标签: java mysql javafx checkbox


【解决方案1】:

这里的问题不是很清楚。你为什么不做类似的事情

public void addUsers (){    
    conn = mysqlconnect.ConnectDb();
    String sql = "insert into users (username,password,email,fc)values(?,?,?,? )";
    try {
        pst = conn.prepareStatement(sql);
        pst.setString(1, txtUsername.getText());
        pst.setString(2, txtPassword.getText());
        pst.setString(3, txtEmail.getText());
        if (checkFc.isSelected()) {
            pst.setString(4, checkFc.getText());
        } else {
            pst.setString(4, null); 
            // or "" instead of null, depending on what you need
        }
        // ...
    } catch (SQLException exc) {
        // ...
    }
}

【讨论】:

  • 谢谢老兄,我知道如何使用 if 语句,但只是基本的 if 语句,我没想到那样使用它,如果它变得非常愚蠢,我很抱歉,我真的看了到处都是,我还在学习,再次感谢你。
  • @Lyly 只是一些建议:你不会通过寻找代码来解决问题,而是通过思考你想要做什么来解决问题。我对你的 cmets 感到沮丧,因为你似乎拒绝为自己思考。
  • 我会考虑到这一点,我真的尝试过,我尝试创建一个像上面的 handleOptions 一样的外部方法并在那里使用 if 语句,我尝试像 lambda 一样做,你可能会找到它愚蠢,但我已经绞尽脑汁将近一个星期了,但没有任何效果,所以有点沮丧并希望它结束​​,我可能只是想要代码,但只是我不知道使用 if这么说,我越来越沮丧,再次感谢您的建议,感谢您的耐心。
猜你喜欢
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
相关资源
最近更新 更多