как дела? Я искал, как обновить Label для одного приложения для другого приложения в течение нескольких дней, и я не могу его найти.
У меня есть основное приложение, где у меня есть макет с меткой:
package updatelistener;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
/**
*
* @author programmer
*/
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
private StringProperty line1 = new SimpleStringProperty(String.valueOf(Config.get("LINE_1")));
@Override
public void initialize(URL url, ResourceBundle rb) {
label.setText("Hello World!");
Updater.Connecting(this);
}
public void setLabelText(String text) {
System.out.println("CONTROLLER SET LABEL CHAMADO");
label.setText(text);
}
}
У меня есть дополнительное приложение, в котором я буду обновлять метку основного приложения:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package updatelistener;
import java.io.IOException;
/**
*
* @author programmer
*/
public class Updater {
static FXMLDocumentController controllerGlobal;
public static void Connecting(FXMLDocumentController controller) {
controllerGlobal = controller;
controller.setLabelText("Bye World");
}
public static void main(String[] args) throws IOException {
controllerGlobal.setLabelText("Update!!!");
}
}
При первом запуске метка корректно обновляется до «Bye World», но я хотел бы обновить метку во время выполнения, указав значение, введенное там в controllerGlobal.setLabelText ("Update !!!");
, и при запуске приложения оно обновит текстовое значение на экране.
Когда я запускаю приложение для обновления значения метки, я получаю исключение NullPointerException.
Может кто-нибудь помочь мне с решением для этого сценария?
.f xml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="updatelistener.FXMLDocumentController">
<children>
<Label fx:id="label" layoutX="100.0" layoutY="120" minHeight="16" minWidth="69" prefWidth="200.0" text="Saque">
<font>
<Font size="25.0" />
</font></Label>
</children>
</AnchorPane>