Duvida quanto a mudança do valor de um JTextField

Estou quebrando a cabeça há uns dois dias com esse problema …
Tenho um código com duas classes.

A primeira tem um JTextField declarado da seguinte maneira :

private javax.swing.JTextField hora_branco;

Nessa mesma classe , criei um método chamado

       public void MudaHoraBranco() 
            {
                    hora_branco.setText("Ola");
            }

Quando eu chamo esse método por outros métodos dessa mesma classe , o campo muda direitinho …
Agora quando eu chamo esse método por métodos da outra classe o campo simplesmente não muda…
Eu já tentei mudar o modificador da váriavel para público e não funcionou …

Alguem saberia uma saída para essa sinuca?! :lol: obrigado desde já !

põe uma simplificação do cod ai pra gente ver.
acho que vc tá fazendo a declaração errado.

cara vc vez os metodos set e get ?

public void setHora(String hora){

  hora.setText(hora);

}

tenta assim pra ver se vai dar certo!

Um pedaço do código :

A Classe numero 1 está assim:

package teste;

import javax.swing.JOptionPane;

public class Relogio extends javax.swing.JFrame 
{
 public Relogio() 
   {
        initComponents();
    }
//Aplicar_confs é o nome de um botao que quando clicado , passa direitinho a hora para o JTEXTFIELD
 private void Aplicar_ConfsActionPerformed(java.awt.event.ActionEvent evt) {                                              
        //repassa para tela a hora
        SetHora();
}      
 public void SetHora() 
  {
         hora_branco.setText("Texto que eu quero que apareça");
  }
 public static void main(String args[]) 
     {
        java.awt.EventQueue.invokeLater(new Runnable() 
        {
            public void run() 
            {
                 new Relogio().setVisible(true);
            }
        }
            );
       
     }  
public javax.swing.JTextField hora_branco;
}

Até ai tudo bem , eu clico no botao e tudo funciona direitinho …
O PROBLEMA É QUANDO EU CHAMO O MÉTODO NA OUTRA CLASSE …

package teste;
import javax.swing.JOptionPane;
public class ConfiguracaoJDialog extends javax.swing.JDialog {
   
    /** Creates new form ConfiguracaoJDialog */
    public ConfiguracaoJDialog() {
        initComponents();
    }

  private void botaoaplicarMouseClicked(java.awt.event.MouseEvent evt) {                                          
        try {
                    Relogio relogio = new Relogio();
                    relogio.SetHora(); // esse cara deveria escrever no JTextField , mas não escreve ... PQ ?!!?!?!?!?
             } 
        catch (Exception erro) 
                {
                    JOptionPane.showMessageDialog(null, "Erro", "Erro", JOptionPane.ERROR_MESSAGE);
                }
        dispose(); //matando o Jframe
}                 
}

[quote=Luiz Augusto Prado]põe uma simplificação do cod ai pra gente ver.
acho que vc tá fazendo a declaração errado.[/quote]

Acho que erro na declaração não é … o netbeans que faz a declaração por mim … :?

Acho q estou conseguindo desvendar o problema …

Quando eu crio uma nova instância da classe relógio eu crio na verdade novas variáveis (no meu caso um novo JTEXTFIELD) de mesmo nome , com as mesmas características da classe original. Então alterar os valores nessa nova instância não altera os valores na instância anterior…

Agora a pergunta que vai resolver o meu problema ( Se for esse o problemas mesmo ehhe )

como alterar o valor do JtextField (sem faze-lo público) a partir de um classe de q não seja a classe que contém o JtextField?
Eu acho que usar set e get não vai rolar , pq para usa-los eu tenho que instanciar a classe que contém o jtextfield , logo criaria um NOVO jtextfield, o que não soluciona meu problema : :cry: :cry: :cry:

Cara teoricamente o que vc fez esta certo, mas ele realmente ira alterar o JText da instancia que vc criou

Relogio relogio = new Relogio();
relogio.SetHora();

Com isso vc esta se referindo a nova, o que vc pode fazer, se eu realmente endendi direito o que vc quer é tentar passar como parametro a instancia do objeto que vc quer apagar no lugar de criar um novo.

seu cod não tá ajudando muito.

vo te mostrar o que achei estranho…

        	try 
		{
                    Relogio relogio = new Relogio(); <- pq isso aqui?
                    relogio.SetHora(); 
             	} 

assim vc sobrescreve seu relogio
acho que é isso que tá ocorrendo.

porque vc não coloca dentro do ConfiguracaoJDialog ou dentro do initComponents?

    	public ConfiguracaoJDialog() 
	{
        	Relogio relogio = new Relogio(); <- aqui seria melhor?
        	initComponents();
    	}

tira de dentro deste try

e isso tá certo:

public void MudaHoraBranco() 
{
       hora_branco.setText("Ola");
}

seus componentes todos podem ser private, mas o para o que vc quer mudar vai precisar de um metodo public.

se seu metodo for public, a chamada deste método muda o conteudo de seu componente mesmo que ele seja private.

Não é isso que você está querendo?

private static javax.swing.JTextField hora_branco; public void SetHora() { Relogio.hora_branco.setText("Texto que eu quero que apareça"); }

tive uma sacada que resolveu o problema mas empobreceu o programa…

eu chamo primeiro a classe das configuração , e só quando ela tiver terminada é que eu construo a classe do relógio , assim evita eu ter que ficar passando parâmetros para uma instância que já existe, pois eu crio a instância do relógio na hora me que eu vou precisar dela …

valeu pela atenção!