#java #javafx
Вопрос:
Поэтому мне нужно создать приложение, в котором я могу сохранять новые продукты в текстовый файл и извлекать его, когда я ввожу его имя. При извлечении должны быть возвращены все продукты с одинаковым именем. В настоящее время все они разделены на разные блоки оповещения, любые советы о том, как я могу заставить их всех находиться в одном блоке оповещения. Это весь код для кнопки «Получить». Любая помощь была бы очень признательна.
btnRetrieveD.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (PNameTF.getText().isEmpty()) {
showAlert(Alert.AlertType.ERROR, primaryStage.getScene().getWindow(), "Error", "Please enter Product Name.");
return;
}
String PName = PNameTF.getText();
String PType = PTypeTF.getText();
String PPrice = PPriceTF.getText();
String lineNum = "";
String filePath = "stock.txt";
BufferedReader br;
String inputSearch = PName;
String line = "";
double count = 0, countBuffer = 0, countLine = 0;
try {
// Code to read from the file
br = new BufferedReader(new FileReader(filePath));
try {
while ((line = br.readLine()) != null) {
countLine ;
//System.out.println(line);
String[] words = line.split(" ");
for (String word : words) {
if (word.equals(inputSearch)) {
count ;
countBuffer ;
showAlert(Alert.AlertType.INFORMATION, primaryStage.getScene().getWindow(), "Success", "Product found. Details below:n" line);
}
}
}
if (countBuffer > 0) {
countBuffer = 0;
lineNum = countLine "n";
} else {
showAlert(Alert.AlertType.ERROR, primaryStage.getScene().getWindow(), "Error", " The product you entered could not be found.");
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Code to clear the text boxes
PNameTF.clear();
PTypeTF.clear();
PPriceTF.clear();
}
});
}
Комментарии:
1. Соберите все найденные продукты в коллекцию и отобразите список найденных продуктов в
Alert
окне после завершения чтения файла.