动作事件错误

时间:2013-11-21 18:52:49

标签: java swing exception actionlistener

为什么我的程序不起作用?我想使用borderlayout,每个按钮做不同的事情。我做了很多研究,但我仍然遇到错误,而且我迷失了。

提前感谢您的帮助。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

  public class Guard10 {

 public static void main(String[] args)
 {
       new Guard10()
 }   

  public Guard10()
  {       
    JFrame myFrame = new JFrame();
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setTitle("Show BorderLayout");
    myFrame.setSize(300, 200);
    myFrame.setLocationRelativeTo(null);

    // Add buttons to the frame
    JButton labelButton = new JButton ("one");
    labelButton.addActionListener(new LabelListener()
    {
        @Override
            public void actionPerformed (ActionEvent event)
            {
                System.out.println ("You clicked it!");
            }
    });
    ////////////
    JButton button2 = new JButton ("two");
    button2.addActionListener(new Button2Listener()
    {
         @Override
            public void actionPerformed (ActionEvent event)
            {
                System.out.println ("YAY!");
            }
      }
     myFrame.add(labelButton,BorderLayout.SOUTH);       
     myFrame.add(button2,BorderLayout.NORTH)
            myFrame.setVisible(true);   

   }
  }

1 个答案:

答案 0 :(得分:2)

你只是忘了一些分号和括号。以下更正的代码正在运行。此外,如果您不做任何事情,请使用标准ActionListener,但要覆盖actionPerformed

public class Guard10 {

  public static void main(String[] args)
  {
    new Guard10();
  }

  public Guard10()
  {
    JFrame myFrame = new JFrame();
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setTitle("Show BorderLayout");
    myFrame.setSize(300, 200);
    myFrame.setLocationRelativeTo(null);

    // Add buttons to the frame
    JButton labelButton = new JButton ("one");
    labelButton.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed (ActionEvent event)
      {
        System.out.println ("You clicked it!");
      }
    });
    ////////////
    JButton button2 = new JButton ("two");
    button2.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed (ActionEvent event)
      {
        System.out.println ("YAY!");
      }
    });
        myFrame.add(labelButton,BorderLayout.SOUTH);
    myFrame.add(button2,BorderLayout.NORTH);
    myFrame.setVisible(true);

  }
}

如果您尝试编译,则会获得堆栈跟踪中的所有错误。只需看看线条就可以找出问题所在。我还建议您使用像Eclipse或IntelliJ Idea这样的IDE,它们会在您键入代码时标记语法错误。