Alterar um objeto de uma classe estatica por um metodo não estático

Olá pessoal do GUJ,

Eu gostaria de estar alterando uma variavel estática em um método não estático.
O funcionamento é assim:
1 - A classe CommunSimul possui o main
2 - Ao clicar em um botão na interface da classe CommunSimul, ele instanciará um objeto do tipo UserGUI.
3 - O usuário entrará com o nome e outros dados.
4 - Ao clicar no butão da classe usuário o JTextField da classe CommunSimul deveria alterar o texto da caixa;

Aqui vai alguns trechos do código para clarear as coisas:

public class CommunSimul extends javax.swing.JFrame {

/** Creates new form CommunSimul */
public CommunSimul() {//construtor
    initComponents();
}

private void initComponents() {// interface gráfica
   (...)
     jtNome1 = new javax.swing.JTextField();
 }
 
 public static void main(String args[]) {
        
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            CommunSimul sim = new CommunSimul();
            sim.setVisible(true);
        }
    });
}

     //classe que executará a ação de alterar o valor do campo nome
   private void jbAddUser1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    Usuario usr1 = new Usuario();
    usr1.setVisible(true);
    usr1.setNome(sim);//passei o objeto para alterar o valor da váriavel //nome;
}

}

//Função da classe usuário que irá alterar o jtextfield da classe //CommunSimul
public void setNome(CommunSimul s3)
{
s3.jtNome1.setText(“bruno”);
System.out.println(“Alterando nome”);
}

Alguem sabe como posso estar procedendo?

Olá! E seja bem-vindo ao GUJ!

Em primeiríssimo lugar, sempre que postar código, não deixe de usar a tag code (você pode corrigir o seu post clicando em editar e seguindo as dicas desse tópico).

Para o que você quer fazer, não há necessidade de variáveis estáticas. Aliás, para praticamente nada existe necessidade de variáveis assim.

Dê uma olhada nesse exemplo e veja se ele resolve o seu problema.

:stuck_out_tongue: Cara…Absolutamente genial!!!

  1. hehehehe, nunca imaginei que a [color=red]solução[/color] chegaria [color=red]tão rápida[/color], fantástico :!:

[color=red]Obrigado pelas dicas sobre a formatação do texto[/color], percebi o quanto é difícil ler o texto sem qualquer formatação. Nos próximos posts estarei mais atento a isso.

:roll: Sobre o código que voce me passou, eu tive que comentar a linha de pacote, em todos os arquivos. Pois compilando sem comentar essa linha, aparecia uma mensagem de que a classe DlgAlterarDados não existia. Não entendi o porque.
[color=red]ps.: Eu extrai dentro de /Desktop (linux)[/color]

Estranho, mas o importante é que você conseguiu rodar o exemplo, certo?
Agora já viu como fazer telas diferentes comunicarem entre si. :wink:

Vini,

“Aliás, para praticamente nada existe necessidade de variáveis assim.”

Você estava dizendo que “praticamente nao se existe a necessidade de usar variaveis statics”, ou estava se referenciando só ao exemplo do colega?

Estava me referindo a variáveis estáticas mesmo.

Raramente elas são necessárias para alguma coisa.

E quando eu tenho um objeto que esta sendo usado por varios outros objetos, e eu preciso que qqer alteração nesse objeto seja visivel para todos os outros? como fazer isso sem static?

E por que tem que ser static?

Todos os outros objetos terão um atributo, não estático, que será uma referência ao objeto que todos enxergam.