import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class myFrm extends JFrame implements MouseListener
{
JButton b1 = new JButton("check");
JButton b2 = new JButton("RED");
JButton b3 = new JButton("quit");
JButton b4 = new JButton("add");
JComboBox com = new JComboBox(); 
JPanel p = new JPanel();
Color c = Color.white;
JTextField jf = new JTextField(20);
myFrm()
{
Container con = getContentPane();

p.add(b1);p.add(b2);p.add(b3);p.add(jf);p.add(b4);
con.add(p);
b3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String s="1234";
if(jf.getText().equals(s))
{
System.out.println("right");
}
else
{
System.out.println("wrong");
}
}

});

b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
c=Color.red;
p.setBackground(c);
//repaint(); }

});
b4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
p.add(com);
validate();
}

});
con.addMouseListener(this);
/*p.addMouseListener( new MouseAdapter()
public void 

);*/
}
//*/
public void mousePressed(MouseEvent e1)
{
Graphics g = getGraphics();
if (e1.getModifiers()==InputEvent.BUTTON1_MASK)
{
//jf.setText("position is:"+e1.getX()+","+e1.getY()+","+"zuojian");

g.drawString("position is:"+e1.getX()+","+e1.getY()+","+"zuojian",e1.getX(),e1.getY());
}
else
{
//Graphics g = getGraphics();
g.drawString("position is:"+e1.getX()+","+e1.getY()+","+"youjian",e1.getX(),e1.getY());
//g.dispose();
g.finalize();
}
g.dispose();
}
public void mouseReleased(MouseEvent e1)
{
//jf.setText("position is:");//+e1.getX()+","+e1.getY());
}
public void mouseEntered(MouseEvent e1)
{
//jf.setText("position is:");//+e1.getX()+","+e1.getY());
}
public void mouseExited(MouseEvent e1)
{
// jf.setText("position is:");//+e1.getX()+","+e1.getY());
}
public void mouseClicked(MouseEvent e1)
{
// p.setText("position is:"+e1.getX()+","+e1.getY());
}
}class myTest
{
public static void main(String[] args)
{
myFrm f = new myFrm();
f.setSize(600,600);
f.setVisible(true);
}
}我想问一下对鼠标事件的监听:我每次单击之后 都有一个显示 怎么在第二次显示之前把上一次的清除掉呢??
还有一个问题 我一直对paint()方法不太懂 请教有没有谁比较明白这个方法的...repaint()怎么又没有参数了呢...
      

解决方案 »

  1.   

    查下API,那里面已经说得很清楚了啊
      

  2.   

    repaint();是保证对paint();的调用。
    也就是你用了repaint()就一定会调用paint();
      

  3.   

    你在监听器最后加个g.repaint();应该就可以了
      

  4.   

    在paintComponent(Graphics g);里写你要画的东西,不用管上次画的什么,只需要理会现在屏幕上显示的是什么。然后不断的调用repaint()就会更新屏幕,调用paintComponent。