使用java.awt。*创建一个eventlistener,为什么它会强制你使用公共抽象作为类?

时间:2015-11-09 15:55:18

标签: java swing events awt

我正在阅读ActionListener。 我添加了implements关键字并导入了java.awt.event.*库。

我按照了示例和oracle Api,但是我收到了这个错误:

  

zx不是抽象的,并且不会覆盖java.awt.event.windowlistener中的抽象方法窗口停用(java.awt.event.windowevent)。

我坚持要上课public abstract。 有谁知道我为什么要这样做? 我见过的所有例子都没有让他们的课抽象。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class zx extends JFrame implements WindowListener, ActionListener {

  public zx() {
    // create window
    super("title 2");
    setSize(100, 100);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);

    //container
    Container area = getContentPane();

    //layout manager
    GridBagLayout flowManager = new GridBagLayout();
    GridBagConstraints pos = new GridBagConstraints();
    area.setLayout(flowManager);

    //buttons
    JButton button1 = new JButton("1");
    pos.gridx = 20;
    pos.gridy = 11;
    area.add(button1, pos);

    JButton button2 = new JButton("2");
    pos.gridx = 15;
    pos.gridy = 11;
    area.add(button2, pos);

    JButton button3 = new JButton("3");
    pos.gridx = 4;
    pos.gridy = 4;
    area.add(button3, pos);

    JButton button4 = new JButton("4");
    pos.gridx = 2;
    pos.gridy = 2;
    area.add(button4, pos);

    JButton button5 = new JButton("5");
    pos.gridx = 0;
    pos.gridy = 0;
    area.add(button5, pos);
  }
}

1 个答案:

答案 0 :(得分:2)

  

所有示例都没有将其设置为摘要。

那么你应该做一些示例,即实际实现WindowListenerActionListener接口。

Implementing Listeners上的Swing教程部分的How to Write an ActionListener开始,单纯的示例。尝试实现WindowListener。然后尝试一个实现它们的类和ActionListener以及一个WindowListener。

此外,类名不应以小写字符开头。 " ZX"不遵守惯例。类名也应该更具描述性。您似乎有以下示例的问题。我建议您花更多时间下载工作示例,然后在尝试学习新概念时对工作示例进行更改。这样,您的代码将更好地构建。