입력 내용 중 하나가 ComboBox (JavaFX) 인 mySQL 데이터베이스에 제출할 양식이 있습니다. JavaFX ComboBox의 선택을 문자열로 변환하는 방법
콤보로부터의 입력을 제출
는 데이터베이스에 추가 값"ComboBox[id=rolePicker, styleClass=combo-box-base combo-box]"
String
아닌 값이다.
데이터베이스에 제출 된 데이터가 선택된 값의 String
이되도록이 문제를 어떻게 해결할 수 있습니까?
(부분) JAVA 컨트롤러 코드 :
이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 코드 : 당신이 문자열 식에 rolePicker
사용하는 다음 줄에
<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>
정말 고마워요! 매력처럼 일했습니다. –