无法看到静态变量

问题描述 投票:0回答:1

我在代码中的不同面板上有不同的文件,我想为动作监听器添加一个文件。我已将变量声明为静态变量,因此动作侦听器可以看到它们,但看不到它们]

import java.awt。;导入javax.swing。;

Respuestas类扩展了JPanel {

static JRadioButton cb1 =new JRadioButton("1");
static JRadioButton cb2 =new JRadioButton("2");
static JRadioButton cb3 =new JRadioButton("3");
static JRadioButton cb4 =new JRadioButton("4");
static JRadioButton cb5 =new JRadioButton("5");

public Respuestas(){

    setLayout(new GridLayout(1,5));

    this.add(cb1);
    this.add(cb2);
    this.add(cb3);
    this.add(cb4);
    this.add(cb5);

    Manejador manejador = new Manejador();
    cb1.addActionListener(manejador);
    cb2.addActionListener(manejador);
    cb3.addActionListener(manejador);
    cb4.addActionListener(manejador);
    cb5.addActionListener(manejador);
}

}

导入javax.swing。*;

Botones类扩展了JPanel {

public static JButton sig = new JButton("Siguiente");

public Botones(){

this.add(sig);

Manejador manejador = new Manejador();
sig.addActionListener(manejador);

}

}

import java.awt.event.ActionEvent;导入java.awt.event.ActionListener;

公共类Manejador实现ActionListener {

public void actionPerformed (ActionEvent evento) {

    if(evento.getSource()==sig) {                 //Error
        System.out.println("Siguiente");
    }
    else if(evento.getSource()==cb1) {            //Error
        System.out.println("1");
    }
    else if(evento.getSource()==cb2) {            //Error
        System.out.println("2");
    }
    else if(evento.getSource()==cb3) {            //Error
        System.out.println("3");
    }
    else if(evento.getSource()==cb4) {            //Error
        System.out.println("4");
    }
    else if(evento.getSource()==cb5) {            //Error
        System.out.println("5");
    }

}

}

java class static actionlistener
1个回答
0
投票

首先,您必须将变量声明为公共变量:

public static JRadioButton cb3 =new JRadioButton("3");

并且要读取该值,必须从这样的类中调用它:

Respuestas.cb1;

您的actionPerformed方法应如下所示:

public void actionPerformed (ActionEvent evento) {

    if(evento.getSource()==Botones.sig) {                 //Error
        System.out.println("Siguiente");
    }
    else if(evento.getSource()==Respuestas.cb1) {            //Error
        System.out.println("1");
    }
    else if(evento.getSource()==Respuestas.cb2) {            //Error
        System.out.println("2");
    }
    else if(evento.getSource()==Respuestas.cb3) {            //Error
        System.out.println("3");
    }
    else if(evento.getSource()==Respuestas.cb4) {            //Error
        System.out.println("4");
    }
    else if(evento.getSource()==Respuestas.cb5) {            //Error
        System.out.println("5");
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.