Окно Javafx развернуто с новым этапом, если не так, и восстановлено, если оно находится в развернутом виде - PullRequest
0 голосов
/ 21 мая 2018

Не могли бы вы сказать, в чем я здесь ошибаюсь, этот код максимизирует текущее окно, если это не так, и наоборот.
Это сделано для обновления представления таблицы, поскольку обновление таблицы не работает после скрытия PopOver элемента controlfx.Было бы лучше, если бы вы предложили идею обновить содержимое таблицы после получения значения из PopOver.

public class HomeController implements Initializable {
@FXML
private JFXButton btnViewMedicine;

@FXML
private JFXButton btnAdditional;

@FXML
private GridPane commGridMed;

@FXML
private TabPane tabPane;

@FXML
private Tab tabMedicine;

@Override
public void initialize(URL arg0, ResourceBundle arg1) {
    tabPane.getSelectionModel().selectFirst();
    btnViewMedicine.fire();
    tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>() {
        @Override 
        public void changed(ObservableValue<? extends Tab> observable, Tab oldTab, Tab newTab) {
            if(newTab!=null) {
                if(newTab.equals (tabMedicine)) {            
                    btnViewMedicine.fire();
                }
            }
    }
    });
}

@FXML
public void viewMedicine(ActionEvent event) throws IOException {
    GridPane node = (GridPane) FXMLLoader
            .load(getClass().getResource(Constants.VIEW_MEDICINE));
    deleteNode();
    commGridMed.add(node, 0, 1);
}

@FXML
void viewAdditional(ActionEvent event) throws IOException {
    BorderPane node = (BorderPane) FXMLLoader
            .load(getClass().getResource(Constants.VIEW_ADDITIONAL));
    deleteNode();
    commGridMed.add(node, 0, 1);
}

public void viewAdditional() {
    tabPane.getSelectionModel().clearSelection();
    tabPane.getSelectionModel().select(0);
    btnAdditional.fire();
}

public void viewMedicine() {
    tabPane.getSelectionModel().clearSelection();
    tabPane.getSelectionModel().select(0);
    btnViewMedicine.fire();
}

private void deleteNode() {
    Set<Node> deleteNodes = new HashSet<>();
    for (Node child : commGridMed.getChildren()) {
        Integer row = GridPane.getRowIndex(child);
        Integer column = GridPane.getColumnIndex(child);
        if (row != null) {
            if (row.equals(1) && column.equals(0)) {
                deleteNodes.add(child);
            }
        }
    }
    commGridMed.getChildren().removeAll(deleteNodes);
}

}

public class ViewMethods{
public void refresh(MouseEvent event) throws IOException {
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource(Constants.HOME));
    Parent root = loader.load();
    HomeController controller = (HomeController) loader.getController();
    controller.viewAdditional();
    Scene scene = new Scene(root);
    Stage stage = (Stage((Node)event.getSource()).getScene().getWindow();
    stage.setScene(scene);
    //stage.setMaximized(true);
    stage.show();
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...