線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1161
推到 Plurk!
推到 Facebook!

關於oo物件導向的問題

缺席
shaokuan
一般會員


發表:3
回覆:0
積分:0
註冊:2003-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-12 01:03:45 IP:218.173.xxx.xxx 未訂閱
以下是我的程式碼,是參考一些書自己打的,我有幾個問題想請教各位,我在編譯的時候出現下面的問題; 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
系統時間:2024-05-18 14:09:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!