2013-01-24 84 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