Pessoal, eu estou tendo problemas para encapsular uma variável. Eu uso o Setter dentro de um botão pois o valor que a variável recebe deve ser atribuído ao clicar no botão.
Segue o código:
private int num;
public int getNum(){
return num;
}
public void setNum(int num){
this.num = num;
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
this.setNum(44); //A variável não tem o valor atribuído
}
public void main(){
System.out.println(this.getNum()); //O valor deveria ser imprimido aqui
}
Boa tarde,
Da forma que esta, não vai funcionar.
O main é executado primeiro que o click do seu botao, entao o print sempre vai ser null;
tente da forma abaixo e veja se mostra o valor.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
this.setNum(44);
imprimirVarlor();
}
private void imprimirValor(){
System.out.println(this.getNum());
}
Fiz o teste aqui e deu certo.
public class Teste extends JFrame {
private int num;
public static void main(String[] args) {
new Teste();
}
public Teste() {
JButton btnTeste = new JButton("Teste");
btnTeste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setNum(44);
imprimirValor();
}
});
getContentPane().add(btnTeste, BorderLayout.NORTH);
setVisible(true);
}
private void imprimirValor() {
System.out.println(getNum());
}
/**
* @return the num
*/
public int getNum() {
return num;
}
/**
* @param num
* the num to set
*/
public void setNum(int num) {
this.num = num;
}
O problema é que o método do botão é private e não pode ser mudado. O que fazer?