下面的代码应该允许用户输入他们要添加到列表中的新产品的详细信息(选择框除外)。几乎所有代码都有效,除了方法 handlePrice()。每当用户尝试在 priceText TextField 中输入时,都会抛出错误“Empty String”,并且根本不允许用户输入任何字符。所有变量都在代码中初始化,PartList 是一个初始化的 ObservableList。
//TextFields
@FXML
private TextField partNameText;
@FXML
private TextField brandNameText;
@FXML
private TextField itemIDText;
@FXML
private TextField materialText;
@FXML
private TextField priceText;//
@FXML
private void handlePartType() {
partType = partTypeChoice.getValue();
}
//
@FXML
private void handlePartName() {
partName = partNameText.getText();
}
//
@FXML
private void handleBrandName() {
brandName = brandNameText.getText();
}
//
@FXML
private void handleItemID() {
itemID = itemIDText.getText();
}
//
@FXML
private void handleMaterial() {
material = materialText.getText();
}
//
@FXML
private void handlePrice() {
String priceString = priceText.getText();
price = Double.parseDouble(priceString);
}
//
@FXML
private void newPart() {
//
if((partTypeChoice.getValue().isEmpty() == false)&&(partNameText.getText().isEmpty() == false)) {
//
PartList.add(partListIndex, new Part(partType, partName, brandName, itemID, material, price));
partListIndex++;
//
partListTable.setItems(PartList);
}
else {
//Changes the text of the Required labels
partTypeLabel.setText("*Part Type");
partNameLabel.setText("*Part Name");
//Changes the color of the Required Labels
partTypeLabel.setTextFill(javafx.scene.paint.Color.RED);
partNameLabel.setTextFill(javafx.scene.paint.Color.RED);
//Displays the warning
warningLabel.setVisible(true);
dismissButton.setVisible(true);
}
}