2016-12-31 10 views
0

У меня есть Anchorpane, содержащий некоторые ярлыки, текстовые поля и кнопки. Открывается новое окно при нажатии кнопки. После выбора имени и идентификатора из нового окна при нажатии клавиши Enter из окна клавиатуры закрывается и имя и id передается уже открытому Anchorpane. Я должен установить имя и идентификатор на этикетках Anchorpane. Я получаю значения, но он не устанавливается на ярлыках, не обновляя anchorpane.refreshing 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» ??? Вы просто изменяете свойство 'text' существующих' Label' в этой 'AnchorPane'. Это все, что нужно, чтобы «обновить» эти узлы ... – 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)); 

} 

и он работал на меня.

 Смежные вопросы

  • Нет связанных вопросов^_^