刷新的anchorpane javafx

时间:2016-12-31 06:48:11

标签: java javafx-2 scenebuilder

我有一个 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()方法的情况下解决这个问题?

任何人都可以帮助我。谢谢。

2 个答案:

答案 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();

也许我可以帮助某人:-)