本人寫了个這樣的代碼 [code]import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
 
public class test003 extends Frame implements MouseListener
{
static int x1,y1,x2,y2;
static int status = 0;
public static void main(String args[])
{
test003 frm = new test003();
frm.setTitle("交互式绘图");
frm.setBounds(410,410,250,200);
frm.addMouseListener(frm);
frm.setVisible(true);
}
 
public void mousePressed(MouseEvent e)
{
x1 = e.getX();
y1 = e.getY();
Graphics g = getGraphics();
status++;
if(status == 1)
{
g.drawLine(x1,y1,x1,y1);
x2=x1;y2=y1;
}
else if(status == 2)
{
g.drawLine(x1,y1,x2,y2);
status = 0;
}
}
 
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}
[/code]
 可以運行 沒有任何的問題 我希望在主文件中new一個drawLine來實現這個畫直綫的功能, 
後來我寫了一个這樣的文件 
[code]
 import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
 
public class drawLine implements MouseListener{
drawLine(){
}
public void mousePressed(MouseEvent e){
int x1,y1,x2,y2;
int status = 0;
x1 = e.getX();
y1 = e.getY();
status++;
                                          Graphics g = getGraphics();
if(status == 1){
g.drawLine(x1,y1,x1,y1);
x2=x1;y2=y1;
}
else if(status == 2){
g.drawLine(x1,y1,x2,y2);
status = 0;
}
}
 
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}[/code] 卻説我沒有為類型drawLine定義方法getGraphics(); 
請問是不是Graphics g = getGraphics();只能寫在主類裏面? 
應該怎麽解決這個問題 謝謝高手指點 

解决方案 »

  1.   

    首先,本人对于SWT不熟悉,从纯OO的角度分析应该是test003 继承了Frame并且实现了MouseListener,而你定义的drawLine希望实现MouseListener,那你就必须亲自去实现所有MouseListener接口希望实现的方法,当然,从你的代码里面完全看不见你实现MouseListener的getGraphics方法.在test003中,getGraphics这个方法是由Frame实现的,这就是为什么会报错的原因.另外,鄙视你的0分贴,我第一次问问题也最少给了50.绝对鄙视.
      

  2.   

    呃……很抱歉 我剛來的 不懂得規矩 
    一定不會有下次了
    另外很感謝你的幫助
    你的意思是不是說得自己在drawLine裏面寫个getGraphics方法呢
      

  3.   

    alienbox(游客) ( ) 信誉:100    Blog  2006-09-11 12:41:00  得分: 0  
     
     
       呃……很抱歉 我剛來的 不懂得規矩 
    一定不會有下次了
    另外很感謝你的幫助
    你的意思是不是說得自己在drawLine裏面寫个getGraphics方法呢
      
     
    对,估计得不偿失,不如直接继承Frame