在ComboBox JavaFX中获取一个int类型的值
Get a value of type int in ComboBox JavaFX
我想在 int 类型的组合框中检索一个值,以便通过查询在 sql table 中执行插入。但是,我做不到,有没有人有解决办法?
这是我的 ComboBox,我尝试获取 "DBUtils.ajouterPersonnelMembre" 中的值:
package eu.hautil.pigeonnier;
import java.net.URL;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.TextField;
public class APMCheckBoxController implements Initializable {
@FXML
private ComboBox id_role;
@FXML
private TextField nom;
@FXML
private TextField prenom;
@FXML
final DatePicker date_arrivee = new DatePicker(LocalDate.now());
@FXML
final DatePicker date_depart = new DatePicker(LocalDate.now());
/*final DatePicker date_depart = new DatePicker(LocalDate.now());
Instant instant_depart = date_depart.toInstant();
LocalDate localDateDepart = instant_depart.atZone(ZoneId.systemDefault()).toLocalDate();*/
@FXML
private Button submit_button;
// Drop Down Menu
@Override
public void initialize(URL url, ResourceBundle rb) {
ObservableList<Integer> list = FXCollections.observableArrayList(1, 2, 3, 4, 5, 6);
id_role.setItems(list);
// End of the Drop Down Menu
submit_button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
DBUtils.ajouterPersonnelMembre(event, id_role.getItems(), nom.getText(), prenom.getText(), date_arrivee, date_depart);
}
});
}
}
我的函数 "ajouterPersonnelMembre" :
public static void ajouterPersonnelMembre(ActionEvent event, int id_role, String nom, String prenom, DatePicker date_arrivee, DatePicker date_depart) throws SQLException {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/le_pigeonnier", "root", "root");
preparedStatement = connection.prepareStatement("INSERT INTO personnel(id_role, nom, prenom, date_arrivee, date_depart) VALUES (?,?,?,?,?)");
preparedStatement.setInt(1, id_role);
preparedStatement.setString(2, nom);
preparedStatement.setString(3, prenom);
preparedStatement.setDate(4, date_arrivee);
preparedStatement.setDate(5, date_depart);
resultSet = preparedStatement.executeQuery();
if(resultSet != null){
System.out.println("Membre du personel bien ajouté !");
changeScene(event, "/fxml/menu.fxml", "", "");
resultSet.close();
} else{
System.out.println("Une erreur est survenue, le membre du personnel n'a pas pu être ajouté");
changeScene(event, "/fxml/sample.fxml", "", "");
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
提前致谢;)
确保你使用的是泛型而不是原始类型:
而不是:
@FXML
private ComboBox id_role;
使用
@FXML
private ComboBox<Integer> id_role;
或遵循 Java 命名约定时更好:
使用
@FXML
private ComboBox<Integer> idRole;
并且您可能想调用 idRole.getValue()
而不是 idRole.getItems()
.
我想在 int 类型的组合框中检索一个值,以便通过查询在 sql table 中执行插入。但是,我做不到,有没有人有解决办法?
这是我的 ComboBox,我尝试获取 "DBUtils.ajouterPersonnelMembre" 中的值:
package eu.hautil.pigeonnier;
import java.net.URL;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.TextField;
public class APMCheckBoxController implements Initializable {
@FXML
private ComboBox id_role;
@FXML
private TextField nom;
@FXML
private TextField prenom;
@FXML
final DatePicker date_arrivee = new DatePicker(LocalDate.now());
@FXML
final DatePicker date_depart = new DatePicker(LocalDate.now());
/*final DatePicker date_depart = new DatePicker(LocalDate.now());
Instant instant_depart = date_depart.toInstant();
LocalDate localDateDepart = instant_depart.atZone(ZoneId.systemDefault()).toLocalDate();*/
@FXML
private Button submit_button;
// Drop Down Menu
@Override
public void initialize(URL url, ResourceBundle rb) {
ObservableList<Integer> list = FXCollections.observableArrayList(1, 2, 3, 4, 5, 6);
id_role.setItems(list);
// End of the Drop Down Menu
submit_button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
DBUtils.ajouterPersonnelMembre(event, id_role.getItems(), nom.getText(), prenom.getText(), date_arrivee, date_depart);
}
});
}
}
我的函数 "ajouterPersonnelMembre" :
public static void ajouterPersonnelMembre(ActionEvent event, int id_role, String nom, String prenom, DatePicker date_arrivee, DatePicker date_depart) throws SQLException {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/le_pigeonnier", "root", "root");
preparedStatement = connection.prepareStatement("INSERT INTO personnel(id_role, nom, prenom, date_arrivee, date_depart) VALUES (?,?,?,?,?)");
preparedStatement.setInt(1, id_role);
preparedStatement.setString(2, nom);
preparedStatement.setString(3, prenom);
preparedStatement.setDate(4, date_arrivee);
preparedStatement.setDate(5, date_depart);
resultSet = preparedStatement.executeQuery();
if(resultSet != null){
System.out.println("Membre du personel bien ajouté !");
changeScene(event, "/fxml/menu.fxml", "", "");
resultSet.close();
} else{
System.out.println("Une erreur est survenue, le membre du personnel n'a pas pu être ajouté");
changeScene(event, "/fxml/sample.fxml", "", "");
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
提前致谢;)
确保你使用的是泛型而不是原始类型: 而不是:
@FXML
private ComboBox id_role;
使用
@FXML
private ComboBox<Integer> id_role;
或遵循 Java 命名约定时更好:
使用
@FXML
private ComboBox<Integer> idRole;
并且您可能想调用 idRole.getValue()
而不是 idRole.getItems()
.