java - 如果不是这样,Javafx 窗口将在新阶段最大化,如果它处于最大化形式则恢复
问题描述
您能否告诉我在这里犯了什么错误,如果不是这样,则此代码最大化当前窗口,反之亦然。
这样做是为了刷新表视图,因为在隐藏 controlfx 的 PopOver 后无法刷新表。如果您建议在从 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();
}
}
解决方案
推荐阅读
- github - Github 操作拉取请求构建器返回错误
- html - 用于全屏启动 HTML 5 视频的导航链接
- javascript - 无法安装 NativeBase
- c++ - 在派生类中使用重载的 + 运算符
- python - 如何测试 Pandas 多索引中存在的一组值(不是全部)?
- bash - 如何使bash脚本密码受到保护?
- java - 使用 Retrofit 2.0 Java 调用 Android 嵌套 API
- javascript - API 函数正在突破 next.js - 关于它在哪里突破的想法?
- python - Discord python bot - massban
- php - wordpress 中的文档字符串有什么用吗?