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()方法的执行呢?
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()方法的执行呢?
有说是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>
*/