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”);
}
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.
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]
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?