Como saber se uma tela foi alterada?

Gostaria de saber se existe algum método (NATIVO) do Java/JavaFX que informe se uma tela (stage/scene/window) foi alterada.

Exemplo prático: uma janela que mostre informações de 10 campos de um registro de um banco de dados (10 TextFields).

Gostaria de saber se existe um método que, caso eu faça qualquer alteração em qualquer um desses TextFields, me retorne um TRUE.

Isso existe?

Quero facilitar minha vida, já que, atualmente, jogo os dados em um array quando abro a tela e, no momento de salvar as alterações, jogo os dados em um outro array. Depois, comparo os dois arrays, para saber se houveram alterações. Acho trabalhoso.

(DETALHE: estou trabalhando com JavaFX).

Agradeço, antecipadamente.

vc pode fazer assim:

if(!seuCampo.equals("")){
  seuBoolean = true;
}

Entendo, @rodriguesabner.

Porém esse tipo de solução, eu já tenho, entende? (assim como falei, já jogo os dados em um array).

O fato é que alguns formulários contém muitos campos. E, quando multiplicamos isso por vários formulários, em um aplicativo, isso se torna muito trabalhoso.

Se houvesse um método nativo (e simples) do Java, que já entregasse isso pronto, seria uma maravilha.

Algo do tipo:

FoiAlterado (frmClientes.fxml);

E o retorno fosse TRUE ou FALSE.

Esse código abaixo contem falhas, mas, é um inicio pra vc:

public boolean checkPreenchimento() throws Exception {
    Component[] info = jPanel1.getComponents(); //pega os componentes de um determinado panel
    ArrayList arl = new ArrayList();
    for (int i = 0; i < info.length; i++) {
        //esse conteudo do "i", são todos os componentes do painel q vc escolheu
        for (Component c : info) {
            if (c instanceof JTextField) { 
            //aqui ele faz a verificação dos JTextFields,
            //se for um JTextField ele pega, senão, não pega
                JTextField textfield = (JTextField) c;
                textfield.setEditable(true);
                arl.add(textfield.getText());
            }
        }
    }

    for (Object ar : arl) {
        if (!ar.toString().equals("")) {
            return true; // se todos estiver diferentes e "", retorna true
        }
    }
    return false; //se estiver igual a "" ele retorna false
}

pra usar::

boolean preenchido = checkPreenchimento();
if (preenchido) {
    System.out.println("campos preenchidos");
} else {
    System.out.println("campos nao preenchidos");
}

Valeu, pela resposta, @rodriguesabner.

Porém eu já havia desenvolvido um código, exatamente igual a esse (com um loop FOR, captando o conteúdo de cada controle (TextFields, ComboBoxes, etc).

O código já funciona, perfeitamente.

O problema (volto a dizer) é a pouca praticidade.

Para cada formulário que eu crio, preciso fazer o seguinte:

  1. Criar 02 arrays globais (um para ANTES e outro para DEPOIS da edição)
  2. Copiar o código para o controller do formulário;
  3. Fazer uma chamada do código ANTES do início da edição;
  4. Fazer outra chamada do código DEPOIS da edição (para comparar os dois arrays e verificar se houve edição)

É desse trabalhão todo, que quero me livrar, entendeu?

Porém acho que esse método não existe no Java/JavaFX. Já pesquisei um bocado.

Você poderia me ajudar com um outro tipo de informação:

Sabe como faço para captar cada um dos containers de um formulário?

Exemplo: Dentro de um mesmo formulário, tenho 01 ANCHORPANE E 01 TABVIEW COM 4 ABAS.

Quero fazer uma instrução FOR que, DE UMA FORMA GENÉRICA, capte os nomes (ID’s) de cada um desses CONTAINERS.

Se eu conseguir fazer isso, TALVEZ eu consiga construir um método 100% genérico, que sirva para todos os formulários que eu criar, daqui pra frente (ou seja, me informe se foram ou não editados).

Sabe como fazer?

Nessas situações eu implemento o padrão de projeto Memento, que inclusive permite eu desfazer as alterações.
Dê uma estudada nele.

Obrigado pela resposta, @staroski.

Dei uma olhada em um artigo que dava um exemplo real de um padrão Memento.

Observei que esse padrão faz o que eu já estava fazendo, com 02 diferenças:

  1. Usa Geters e Seters para trocar informações com o array;
  2. Dá mais trabalho (já que é necessário trocar informações a cada campo preenchido).

No meu caso, é algo mais simples. Só preciso saber se o registro foi alterado, independentemente de em qual campo. E isso eu já consigo fazer, utilizando algo BEM parecido com o padrão memento.

Minha dúvida é SE existe algum método do Java/JavaFX que me dê essa informação pronta.

Creio que o método não exista.

Porém, obrigado a vocês dois, pelas respostas.

:+1::+1::+1::+1::+1::+1: