gpt4 book ai didi

java - 如何将 JavaFX ComboBox 中的选择转换为字符串

转载 作者:行者123 更新时间:2023-11-29 02:48:00 25 4
gpt4 key购买 nike

我有一个要提交给 mySQL 数据库的表单,其中一个输入是 ComboBox (JavaFX)。

从ComboBox提交输入时,添加到数据库的值为

"ComboBox[id=rolePicker, styleClass=combo-box-base combo-box]"

不是 String 值。

如何解决这个问题,使提交到数据库的数据是所选值的 String

(部分)JAVA Controller 代码:

public class NewUserController implements Initializable, ControlledScreen {

@FXML
TextField nameField;
@FXML
TextField usernameField;
@FXML
TextField emailField;
@FXML
ComboBox rolePicker;

@FXML
public void submitUser(ActionEvent event) {
String dbUsername = "root";
String dbPassword = "secret";
String dbURL = "jdbc:mysql://localhost:3306/uia";

try {
Connection conn = DriverManager.getConnection(dbURL, dbUsername, dbPassword);
Statement statement = (Statement) conn.createStatement();
statement.execute("INSERT INTO user (name, username, password, email, userrole) VALUES ('" + nameField.getText() + "', '" + usernameField.getText() + "', '" + usernameField.getText() + "', '" + emailField.getText() + "', '" + rolePicker + "');");

} catch (SQLException e) {
System.out.println(e);
}
}

(部分)FXML 代码:

<ComboBox id="rolePicker" fx:id="rolePicker" editable="true" maxHeight="25.0" maxWidth="225.0" minHeight="25.0" minWidth="225.0" prefHeight="25.0" prefWidth="225.0" promptText="Role.." visibleRowCount="4">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="TEACHER" />
<String fx:value="STUDENT" />
</FXCollections>
</items>
</ComboBox>

最佳答案

在以下行中使用 rolePicker在字符串表达式中,因此编译器将调用 toString()此对象上的方法以获取对象的字符串表示形式,这会导致上述输出:

statement.execute("INSERT INTO user (name, username, password, email, userrole) VALUES ('" + 
nameField.getText() + "', '" + usernameField.getText() + "', '" + usernameField.getText() + "', '" + emailField.getText() +
"', '" + rolePicker + "');");

您应该获得 ComboBox 的选定值与 getValue 方法:

rolePicker.getValue();

您可以在表达式中使用返回值。

注意: getValue将返回键入 ComboBox 的类型具有通用参数(存储在 ComboBox 中的项目类型):public final T getValue() .在您目前的情况下,您有一个 ComboBox存储 String values ( ComboBox<String> ),因此可以直接使用返回值。

关于java - 如何将 JavaFX ComboBox 中的选择转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39486468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com