2015-05-25 41 views
2

框架正常打開和關閉,但鼠標單擊不起作用。AWT框架不處理事件

import java.awt.Frame; 
import java.awt.Graphics; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 

//Create a frame window that responds to mouse click 
public class AWT3 extends Frame { 
    String Mmsg=""; 
    int mouseX=0, mouseY=0; 

    public AWT3() { 
     addWindowListener(new MyWindowwAdapter(this)); 
     addMouseListener(new MyMouseeAdapter(this)); 
    } 

public void paint(Graphics g){ 
     g.drawString(Mmsg, mouseX, mouseY); 
    } 

public static void main(String args[]){ 
    AWT3 awt3 = new AWT3(); 
    awt3.setSize(new dimension(500, 500)); 
    awt3.setTitle("Window framee"); 
    awt3.setVisible(true); 
    } 
} 


class MyWindowwAdapter extends WindowAdapter{ 
    AWT3 awt3; 
    public MyWindowwAdapter(AWT3 awt3) { 
     this.awt3=awt3; 
    } 
    public void windowClosing(WindowEvent we){ 
     awt3.setVisible(false); 
    } 
} 

class MyMouseeAdapter extends MouseAdapter{ 
AWT3 awt3; 
public MyMouseeAdapter(AWT3 awt3) { 
    this.awt3=awt3; 
} 
public void MouseClicked(MouseEvent me){ 
    awt3.Mmsg="the mouse is clicked"; 
    awt3.mouseX= me.getX(); 
    awt3.mouseY=me.getY();`` 
    awt3.repaint(); 
} 
} 
+0

和'awt3.setSize(new Dimension(500,500));' –

+0

也必須導入類。 import java.awt.Dimension; – PHJCJO

+0

爲什麼要使用AWT?看到[這個答案](http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978)有很多很好的理由放棄AWT使用組件有利於Swing。 –

回答

0

的方法名稱應該是public void mouseClicked(MouseEvent me) 而不是public void MouseClicked(MouseEvent me)

0

mouseClicked()是當鼠標按鈕被按下並釋放時。

mousePressed()是當鼠標按鈕被按下時。

您的代碼正在工作。在java 1.7上測試。只有我看到的問題是無法導入您嘗試創建新維度(500,500)的類,例如:java.awt.Dimension;儘管類名稱的格式很簡單,但您可以修復此錯誤並嘗試使用代碼。

2

從它看起來像這樣的代碼將不會編譯。你有你需要修復的錯誤:

awt3.setSize(new dimension(500, 500)); 

awt3.setSize(new Dimension(500, 500)); 

,並添加適當import java.awt.Dimension由別人指出。

另一個錯誤是MouseClicked(MouseEvent me)沒有重寫從MouseAdapter的超類方法,因爲它的語法錯誤(超類方法以小寫開頭)。將其更改爲mouseClicked(MouseEvent me)(如果需要,可添加可選的@Override註釋)。

+1

*「添加可選的**'@ Override' **註釋..」* +1。 –