Я открываю свой диалог из этого кода, который в моем главном контроллере называется InvoicecreationController
. Когда я впервые открываю диалоговое окно, выбираю строку и нажимаю клавишу Enter, она закрывается. Однако, когда я открываю его во второй раз, он не закрывается.
public void openitemsearchPopWindow(){
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/AccApp/customers/newinvoice/modals/ItemSearchResults.fxml"));
Parent root = loader.load();
ItemSearchResultsController enteritemNameforsearchController = loader.getController();
enteritemNameforsearchController.getupdateinvoiceController(this);
Stage stageSearchedSupplier = new Stage();
stageSearchedSupplier.setScene(new Scene(root));
stageSearchedSupplier.initModality(Modality.APPLICATION_MODAL);
stageSearchedSupplier.initOwner(customername.getScene().getWindow());
stageSearchedSupplier.initStyle(StageStyle.UNDECORATED);
stageSearchedSupplier.show();
} catch (IOException ex) {
Logger.getLogger(invoicecreationController.class.getName()).log(Level.SEVERE, null, ex);
}
}
Мой код для контроллера диалогового окна приведен ниже.
@FXML
public TableView<Itemnames> seachedresultsTable;
@FXML
public TableColumn<Itemnames, String> itemnameCol;
@FXML
public TextField searchtextfield;
@FXML
public AnchorPane rootPane;
private invoicecreationController invoicecreationcontroller;
public void getupdateinvoiceController(invoicecreationController invoicecreationcontroller) {
this.invoicecreationcontroller = invoicecreationcontroller;
}
@Override
public void initialize(URL url, ResourceBundle rb) {
seachedresultsTable.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
Number newValue) {
TableHeaderRow header = (TableHeaderRow) seachedresultsTable.lookup("TableHeaderRow");
header.reorderingProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable,
Boolean oldValue, Boolean newValue) {
header.setReordering(false);
}
});
}
});
seachedresultsTable.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.ENTER) {
String myIndex = seachedresultsTable.getSelectionModel().getSelectedItem().getName();
if (!"".equals(myIndex)) {
invoicecreationcontroller.updateTableCell(myIndex);
Stage stage = (Stage) searchtextfield.getScene().getWindow();
stage.close();
}
}
}
});
itemnameCol.setCellValueFactory(new PropertyValueFactory<>("name"));
loadItemNames();
}
private ObservableList<Itemnames> data;
List<Itemnames> itemnameList;