2013-01-24 58 views
2

继承人我的代码:型解决不了

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


public class FirstGui extends JFrame { 
    private JLabel label; 
    private JButton button; 

    public FirstGui() { 

     setLayout(new FlowLayout()); 

     button = new JButton("Click for sex"); 
     add(button); 

     label = new JLabel(""); 
     add(label); 

     event e = new event(); 
     button.addActionListener(e); 
    } 

    public class event implements ActionListener { 

     public void actionPerformed(ActionEvent e) { 

      label.setText("how you can see wors here"); 

     } 
    } 

    public static void main(String [] args) { 
     FirstGui gui = new FirstGui(); 

     gui.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     gui.setSize(200, 200); 
     gui.setTitle("Title"); 
     gui.setVisible(true); 

    } 

} 

而且它会产生一个错误:

动作事件不能被解析为一个类型FirstGui.java /测试/ src目录第26行的Java问题

ActionListener无法解析为类型FirstGui.java/Test/src行24 Java问题

AbstractButton类型中的方法addActionListener(ActionListener)不适用于t他的论点(FirstGui.event)FirstGui.java/Test/src第21行Java问题

它有什么问题?即时通讯新的Java。

+2

你需要'进口java.awt.event中。*;' –

+1

它看起来像缺少一些'import'语句或其他东西 –

+2

为什么在同一个源文件中有两个公共类?这段代码是否编译?源文件中只能有一个公共类。 – Mechkov

回答

0

ActionEventActionListener位于java.awt.event包中。

导入java.awt.*是不够的。

4

导入以下:

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
0

这些类,都需要你来导入。您可以通过导入java.awt.event中的一切都这样做:

import java.awt.event.*; 

,或者你可能只是想明确导入你使用的是什么:

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

请记住,它被认为是很好的做法,进口单独的类(后一种选择),而不是导入整个包。

如果您遇到困难这样再次,看着The Docs for any Java Class会告诉你,你需要一个小图,看起来像这样导入正是:

java.lang.Object 
    java.util.EventObject 
     java.awt.AWTEvent 
      java.awt.event.ActionEvent