繁体   English   中英

我想让我的动作监听器放在一个单独的类上,但它似乎不起作用

[英]i want to make my actionlistener on a separete class but it doesnt seem to work

我尝试了许多从另一个类添加另一个方法的实现,以便使其工作,但我仍然无法做到。 所以我的主要内容很简单:

   public class Main {
   public static void main(String[] args) {
   new frame();
   }}

问题出现在我的框架类上,当我将动作侦听器放在我的框架方法上时,它运行得很好,但是当我将它放在另一个类上时,在这种情况下是我的动作类,我似乎无法以任何方式使其工作。 ..

  public class frame{
  buttons b = new buttons();
  public JFrame f1 = new JFrame("logging in...");
  public JPanel p = new JPanel();
  public frame() {
    frames();
    new actions(); }
  public void frames(){
    p.setLayout(null);
    p.setBackground(Color.yellow);
    b.b1.setIcon(new ImageIcon("C:\\Users\\User\\Pictures\\heroes-icons-large.jpg"));
    b.img.setIcon(new ImageIcon("C:\\Users\\User\\Pictures\\lock screen.jpg"));
    p.add(b.lab);
    p.add(b.lab3);
    p.add(b.lab2);
    p.add(b.b1);
    p.add(b.t1);
    p.add(b.t2);
    p.add(b.img);
    f1.pack();
    f1.setSize(340,300);
    f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f1.setLocationRelativeTo(null);
    f1.add(p);
    f1.setVisible(true); }}

当然,我在另一个类上制作了按钮标签等,我认为我不需要在这里写它,所以这里是我的操作类,它似乎有问题:

  public class actions {
  buttons b = new buttons();
  public actions(){
    a1(); }
  public void a1(){
    b.b1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            b.lab.setText("it works!");
        }});}}

请帮助我,我有点新,所以可能有一些我不知道的东西/我可能会遗漏,但相信我,我尝试了很多。 感谢您的时间。

为什么需要动作类? 您不需要覆盖 actionListener。 你有没有为你的主类实现 ActionListener ?

 @Override
  public void actionPerformed(ActionEvent e){ // your code};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM