[英]refreshing anchorpane javafx
我有一个包含一些标签,文本字段和按钮的Anchorpane 。单击按钮会打开一个新窗口。从新窗口中选择名称和ID后,在从键盘窗口按Enter键时关闭,并将名称和ID传递给已经打开的Anchorpane 。 我必须在Anchorpane的标签上设置名称和ID。 我正在获取值,但在不刷新锚定窗格的情况下未在标签中进行设置。
如何再次刷新固定窗格,而无需按任何按钮来加载该固定窗格。 我看到了类似的问题,但没有任何帮助。
我通过了如下数据:
FXMLLoader load = new FXMLLoader();
try {
Pane root = load.load(getClass().getResource(FXML_CTRL_BILL).openStream());
Item_bill bill = load.getController();
bill.setDataCustomer(name, id);
} catch (IOException e) {
e.printStackTrace();
}
并在我的Item_bill控制器中获得了传递的值,如下所示
public void setDataCustomer(String name, String cutmrId) {
Item_bill.customerName = name;
Item_bill.customerId = cutmrId;
}
仅在再次调用initialize()方法之后才设置值。 我如何解决这个问题而无需再次调用initialize()方法?
谁能帮我。 谢谢。
最后,我解决了这个问题,因为我引用了名为custmrNameDummy和idLabelDummy的标签,
@FXML
private Label custmrName;
public static Label custmrNameDummy;
@FXML
private Label idLabel;
public static Label idLabelDummy;
static String customerName = null;
static String customerId = null;
public void initialize(URL location, ResourceBundle resources) {
custmrNameDummy=custmrName;
idLabelDummy=idLabel;
}
public static void setDataCustomer(String name, String cutmrId) {
Item_bill.customerName = name;
Item_bill.customerId = cutmrId;
custmrNameDummy.setText(customerName);
idLabelDummy.setText(String.valueOf(customerId));
}
它为我工作。
不幸的是,为了帮助您解决上述问题,为时已晚,但是我遇到了相同/类似的问题,并且我解决了问题:-)
首先简短说明我的问题:
我有三个TableViews:
(“ tblPreviousResults”,“ tblTotalStatistics”,“ tblAvailableCategories”)
所有表都位于一个AnchorPane上,我想根据是否选中CheckBoxTableCell(位于TableView“ tblAvailableCategories”中)来触发TableView“ tblPreviousResults”上的更新。
我的第一次尝试(一如既往):
tblPreviousResults.setItems(FXCollections.observableArrayList(newPreviousResults)); tblPreviousResults.refresh();
但是newPreviousResults直到我直接选择/聚焦表后才出现。
现在,我有一个解决问题的方法:
tblPreviousResults.getParent()。requestFocus();
也许我可以帮助某人:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.