Alterando valores de componentes em outras classes

4 respostas
B

Olá sou novo aquí. e já percebi que vc são bastante cooperativos.
Se possivel gostaria que alguem me desse uma ajuda.
criei uma classe chamada classe1 com 3 botões ao clicar no botão1 {instanciei a classe2 com outros 3 botões e desabilitei o botõa1 da classe 1}
minha duvida: como abilitar o botão1 da classe1 atraves da classe2. Isto é possivel?

ex.

public class Classe1 extends JFrame

{

public JButton jButton1 = new JButton();

public JButton jButton2 = new JButton();

public JButton jButton3 = new JButton();

public JanPrincipal() {
try {
 jbInit();
}

catch(Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

Classe1 classe1= new Classe1();
private void jbInit()

{

getContentpane.add(jButton1);

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {

jButton1_actionPerformed(e);

}

});

getContentpane.add(jButton2);

getContentpane.add(jButton3);

.

.

.

}
void jButton1_actionPerformed(ActionEvent e) {

new Classe2().show();

jButton1.setEnabled(false);// problema : não consigo abilitar este botão atraves da classe2

}

}

public class classe2 extends JFrame

{

public JButton jButton1 = new JButton();

public JButton jButton2 = new JButton();

public JButton jButton3 = new JButton();

public JanPrincipal() {
try {
 jbInit();
}

catch(Exception e) {

e.printStackTrace();

}

}

private void jbInit()

{

getContentpane.add(jButton1);

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {

jButton1_actionPerformed(e);

}

});

getContentpane.add(jButton2);

getContentpane.add(jButton3);

.

.

.

}
// Existe alguma maneira de implementar 
    // alguma coisa proxima à isto?
void jButton1_actionPerformed(ActionEvent e) {

funcionalidade();

classe1.jButton1.setEnabled(true);//???

}

}
grato.

4 Respostas

cariocathi

crie um método público na classe um para habilitar o btn, exemplo:

public void btnHab( boolean b )

{

setEnabled( b );

}

depois disso, passe uma referencia da classe1 para a classe2
e na classe2 é só vc fazer <referenciaqvcpassou>.btnHab( true );

vlw ?

B

Desculpe a Ignorancia , mas como assim referencia para outra classe?
desde já agradeço.

cariocathi

na outra classe vc cria um construtor( método com mesmo nome da classe, sem retorno )

public Classe2( Classe1 c )

{

}

assim vc pode fazer na classe1 chamar a classe 2 assim:

new Classe2( this );

o this indica q vc está passando a própria classe para a outra classe.

Entendeu ?

B

HAAAAAAAA :smiley: !!! Entendido , valeu muitissimo obrigado por sua ajuda colega.

Criado 2 de novembro de 2003
Ultima resposta 2 de nov. de 2003
Respostas 4
Participantes 2