我有一个 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()方法的情况下解决这个问题?
任何人都可以帮助我。谢谢。
答案 0 :(得分:2)
最后我解决了这个问题, 我引用了名为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));
}
它对我有用。
答案 1 :(得分:0)
不幸的是,为了帮助您解决上述问题,为时已晚,但是我遇到了相同的/类似的问题,并且我解决了:-)
首先简短说明我的问题:
我有三个TableViews:
(“ tblPreviousResults”,“ tblTotalStatistics”,“ tblAvailableCategories”)
所有表都位于一个AnchorPane上,我想根据是否选中CheckBoxTableCell(位于TableView“ tblAvailableCategories”中)来触发TableView“ tblPreviousResults”上的更新。
我的第一次尝试(一如既往)
tblPreviousResults.setItems(FXCollections.observableArrayList(newPreviousResults)); tblPreviousResults.refresh();
但是直到我直接选择/聚焦表之后,newPreviousResults才出现。
现在我有一个解决问题的方法:
tblPreviousResults.getParent()。requestFocus();
也许我可以帮助某人:-)