2016-12-31 50 views
0

我有一个Anchorpane包含一些标签,文本框和按钮。单击按钮时打开一个新窗口。从新窗口中选择名称和ID后,从键盘按下Enter按钮将被关闭并命名并传递给已打开的ID Anchorpane。我必须在Anchorpane的标签上设置名称和ID。我正在获取这些值,但未在刷新锚板时在标签中设置。刷新anchorpane javafx

如何在不按任何按钮来加载该锚板的情况下再次刷新锚板。我看到了类似的问题,但没有为我工作。

我传递的数据如下;

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()方法的情况下解决此问题?

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

+0

你可以发表一个如何将值传递给AnchorPane的小例子吗?因为我认为如果你还没有使用'ObservableValue',你的问题可能会解决。 – n247s

+0

你是什么意思你需要“刷新”AnchorPane?您只需修改该“AnchorPane”中现有'Label'的'text'属性即可。这就是“刷新”这些节点所需要的全部...... – fabian

+0

@ fabian我想设置该锚板的标签中的值。但是只有在再次加载窗格后才能设置值。意味着我必须再次调用initialize()方法。 – Jiji

回答

1

最后我解决的, 我做了参考命名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)); 

} 

,它为我工作。