求解JApplet 中的update()方法为何没有调用?

hitzsf 2011-06-08 10:40:26
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class TMouse extends JApplet implements MouseListener{
Container con;
int width,height;
int x,y;
int flag;

public void init(){
con=this.getContentPane();

x=y=0;
width=height=2;

flag=0;

con.addMouseListener(this);
}

public void update(Graphics g){
g.setColor(this.getBackground());
g.fillRect(0,0,
getWidth(),
getHeight());
paint(g);
}

public void paint(Graphics g){

g.setColor(Color.blue);
g.drawString("Click the MouseButton ....",5,20);
g.setColor(Color.red);

if(flag==1)
g.drawString("Mouse Entered Applet",5,80);

}

public void mouseEntered(MouseEvent me){
flag=1;
repaint();
}

public void mouseExited(MouseEvent me){
flag=2;
repaint();
}

public void mouseClicked(MouseEvent me){
flag=3;
x=me.getX();
y=me.getY();
repaint();
}

public void mousePressed(MouseEvent me){
flag=4;
x=me.getX();
y=me.getY();
repaint();
}

public void mouseReleased(MouseEvent me){
flag=5;
x=me.getX();
y=me.getY();
repaint();
}
}


/*
<Applet Code=TMouse width=400 height=200>
</Applet>
*/

内容没有被覆盖啊,后来在update()中 加入了打印语句,也未见执行,

repaint() ->update()->paint() 应该是这个顺序的,可是为何不见update()方法的执行呢?
...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hitzsf 2011-06-09
  • 打赏
  • 举报
回复
虽然解决了刷新面板的问题,但还不能明白为啥 update()方法为何没有调用
有说是java线程的问题,不知道对不对?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class TMouse extends JApplet implements MouseListener{
Container con;
int width,height;
int x,y;
int flag;

@Override
public void init(){
con=this.getContentPane();

x=0;
y=0;
width=20;
height=20;

flag=0;


con.addMouseListener(this);
}

@Override
public void update(Graphics g){
System.out.println("s");
g.setColor(Color.yellow);
g.fillRect(0,0,this.getWidth(),this.getHeight());
paint(g);

}

@Override
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.blue);
g.drawString("Click the MouseButton ....",5,20);
g.setColor(Color.red);

if(flag==1)
g.drawString("Mouse Entered Applet",5,80);

else if(flag==2)
g.drawString("Mouse Exited Applet",5,80);

else if(flag==3){
g.drawString("Mouse Entered Applet",5,80);
g.fillRect(x,y,width,height);
g.drawString("Click Here!",x,y);
}

else if(flag==4){
g.drawString("Mouse Entered Applet",5,80);
g.fillRect(x,y,width,height);
g.drawString("Pressed Here!",x,y);
}

else if(flag==5){
g.drawString("Mouse Entered Applet",5,80);
g.fillRect(x,y,width,height);
g.drawString("Mouse Released!",x,y);
}
}

@Override
public void mouseEntered(MouseEvent me){
flag=1;
repaint(0,0,0,getWidth(),getHeight());
}

@Override
public void mouseExited(MouseEvent me){
flag=2;
repaint(0,0,0,getWidth(),getHeight());
}

@Override
public void mouseClicked(MouseEvent me){
flag=3;
x=me.getX();
y=me.getY();
repaint();
}

@Override
public void mousePressed(MouseEvent me){
flag=4;
x=me.getX();
y=me.getY();
repaint();
}

@Override
public void mouseReleased(MouseEvent me){
flag=5;
x=me.getX();
y=me.getY();
repaint();
}
}


/*
<Applet Code=TMouse width=400 height=200>
</Applet>
*/
hitzsf 2011-06-08
  • 打赏
  • 举报
回复
搞定了,呵呵

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧