Alterar atributos de outras classes em java
Fala galera blz ? Sou iniciante em java e estou com uma duvida talvez ate boba... é o seguinte, estou desenvolvendo um software, e nesse software tenho uma tela que é composta por três JPanel, sendo que no primeiro tenho alguns botões e no segundo e terceiro JPanel tenho alguns JLabels...
A minha intenção é, quando o botão for clicado ele execute um método e eu quero pegar o retorno do método (String) e adicionar na propriedade Text do JLabel que esta no outro JPanel, mas o problema é que cada um dos JPanels é uma classe diferente e não estou conseguindo alterar a propriedade Text do JLabel que esta em outra classe. Segue as classes para maiores esclarecimentos...
package pacote;
imports….
public class Controle extends JPanel implements ActionListener{
private static final long serialVersionUID = 1L;
private JButton exec;
private JLabel teste;
public Controle(){
teste = new JLabel("0");
teste.setBounds(40, 40, 100, 20);
exec = new JButton("EXEC");
exec.setBounds(20, 20, 80, 20);
exec.addActionListener(this);
exec.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Informacao i = new Informacao();
i.qnt.setText("1");
}
});
this.add(teste);
this.add(exec);
this.setLayout(null);
this.setBounds(100, 200, 200, 200);
}
public void actionPerformed(ActionEvent e){}
}
package pacote;
imports
public class Informacao extends JPanel implements ActionListener{
public JLabel qnt = new JLabel("0");
public Informacao(){
qnt.setBounds(20, 20, 100, 20);
this.add(qnt);
this.setLayout(null);
this.setBounds(400, 200, 200, 200);
}
public JLabel getQnt() {
return qnt;
}
public void setQnt(JLabel qnt) {
this.qnt = qnt;
}
public void actionPerformed(ActionEvent e){}
}
Se puderem me ajudar ficarei muito agradecido.
A minha intenção é, quando o botão for clicado ele execute um método e eu quero pegar o retorno do método (String) e adicionar na propriedade Text do JLabel que esta no outro JPanel, mas o problema é que cada um dos JPanels é uma classe diferente e não estou conseguindo alterar a propriedade Text do JLabel que esta em outra classe. Segue as classes para maiores esclarecimentos...
package pacote;
imports….
public class Controle extends JPanel implements ActionListener{
private static final long serialVersionUID = 1L;
private JButton exec;
private JLabel teste;
public Controle(){
teste = new JLabel("0");
teste.setBounds(40, 40, 100, 20);
exec = new JButton("EXEC");
exec.setBounds(20, 20, 80, 20);
exec.addActionListener(this);
exec.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Informacao i = new Informacao();
i.qnt.setText("1");
}
});
this.add(teste);
this.add(exec);
this.setLayout(null);
this.setBounds(100, 200, 200, 200);
}
public void actionPerformed(ActionEvent e){}
}
package pacote;
imports
public class Informacao extends JPanel implements ActionListener{
public JLabel qnt = new JLabel("0");
public Informacao(){
qnt.setBounds(20, 20, 100, 20);
this.add(qnt);
this.setLayout(null);
this.setBounds(400, 200, 200, 200);
}
public JLabel getQnt() {
return qnt;
}
public void setQnt(JLabel qnt) {
this.qnt = qnt;
}
public void actionPerformed(ActionEvent e){}
}
Se puderem me ajudar ficarei muito agradecido.
Leonardo Oliveira
Curtidas 0
Respostas
Ronaldo Lanhellas
19/05/2015
Verifica se o método get() do JLabel do outro JPanel está criado, algo como: getJLabelPanel2(). Assim você terá que fazer a seguinte chamada:
instanciaAtualDoPanel2.getJLabelPanel2().setText('oi from Panel1');
GOSTEI 0
Ronaldo Lanhellas
19/05/2015
Verifica se o método get() do JLabel do outro JPanel está criado, algo como: getJLabelPanel2(). Assim você terá que fazer a seguinte chamada:
instanciaAtualDoPanel2.getJLabelPanel2().setText('oi from Panel1');
GOSTEI 0
Ronaldo Lanhellas
19/05/2015
Verifica se o método get() do JLabel do outro JPanel está criado, algo como: getJLabelPanel2(). Assim você terá que fazer a seguinte chamada:
instanciaAtualDoPanel2.getJLabelPanel2().setText('oi from Panel1');
GOSTEI 0