關於oo物件導向的問題 |
缺席
|
shaokuan
一般會員 ![]() ![]() 發表:3 回覆:0 積分:0 註冊:2003-07-12 發送簡訊給我 |
以下是我的程式碼,是參考一些書自己打的,我有幾個問題想請教各位,我在編譯的時候出現下面的問題;
Testwin.java:7: Test5 is not abstract and does not override abstract method mouseClicked(java.awt.event.MouseEvent) in java.awt.event.MouseListener class Test5 extends Window implements MouseListener;後來我把implements MouseListener以及addMouseListener(this);去掉之後就可以了.但是滑鼠的事件就出步來了,我想請問觀念的問題
是我哪裡弄錯了呢,我為捨麼不能implements MouseListener呢,可以跟我說說嗎
還有在程式的後段
fw.addWindowListener(new WindowAdapter()
{
public void windowClose(WindowEvent e)
{System.exit(0);}
}
);
fw.show();
這裡在我們新增一個視窗的傾聽中裡面應該放的是一個WindowEvent物件吧
但是我這樣寫(參考書的),編譯可以過我覺得很奇怪,請問裡面的作用是新增一個物件嗎,但是怎麼連方法都一起新增出來了還有位捨麼會有{}兩個框呢,在裡面應該是要呼叫WindowAdapter的建構子吧我還是第一次看到這種寫法,所以想弄清楚一點,我覺得好怪喔,有人可以用物件的觀念說明一下嗎,謝謝
------------------------------------------------------------------------------------------ import java.awt.*;
import java.awt.event.*; class Test5 extends Window implements MouseListener
{ int x=0,y=0;
Label lblMessage;
Test5(Testw title)
{
super(title);
setLayout(new FlowLayout());
lblMessage = new Label(" ");
add(lblMessage);
addMouseListener(this);
}
public void paint(Graphics g)
{
int width = getSize().width;
int height = getSize().height;
g.drawRect(0, 0, --width, --height);
g.drawString("(" x ", " y ")", x, y);
} public void mouseClick(MouseEvent e)
{
x=e.getX();
y=e.getY();
repaint();
}
public void mouseEntered(MouseEvent e)
{
lblMessage.setText("滑鼠進入");
} public void mouseExited(MouseEvent e)
{
lblMessage.setText("滑鼠離開");
}
public void mousePressed(MouseEvent e)
{
lblMessage.setText("按下滑鼠");
}
public void mouseReleased(MouseEvent e)
{
lblMessage.setText("放開滑鼠");
}
} class Testw extends Frame implements ActionListener
{ Button btnShow, btnHide;
Test5 nf;
Testw()
{
setLayout(new FlowLayout());
btnShow = new Button("顯示視窗");
btnHide = new Button("隱藏視窗");
add(btnShow);
add(btnHide);
btnShow.addActionListener(this);
btnHide.addActionListener(this);
nf = new Test5(this);
nf.setSize(400, 200);
nf.setLocation(300, 300);
} public void actionPerformed(ActionEvent e)
{
if(e.getSource() == btnShow)
{
nf.setVisible(true);
}
if(e.getSource() == btnHide)
{
nf.setVisible(false);
}
}
} public class Testwin
{
public static void main(String[] args)
{
Testw fw = new Testw();
fw.setSize(200, 200);
fw.addWindowListener(new WindowAdapter()
{
public void windowClose(WindowEvent e)
{System.exit(0);}
}
);
fw.show();
}
}
------------------------------------------------------------------------------------------ 發表人 - shaokuan 於 2003/07/12 11:13:13
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |