2016-12-31 88 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)); 

} 

,它爲我工作。