public class aa
{
JFrame jf;
aa()
{
jf=new JFrame();
jf.setSize(300,300);
jf.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
jf.getGraphics().setColor(Color.red);
jf.getGraphics().fillRect(30,30, 30, 30);
}
});
jf.setVisible(true);
}

public static void main(String[] args) 
{
new aa();
}
}
为什么单击鼠标后  显示的矩形  不是我设置的颜色

解决方案 »

  1.   


    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    public class aa {    JFrame jf;    aa() {
            jf = new JFrame();
            jf.setSize(300, 300);
            jf.addMouseListener(new MouseAdapter() {            public void mouseClicked(MouseEvent e) {
                    Graphics g=jf.getGraphics();
                    g.setColor(Color.red);
                    g.fillRect(30, 30, 30, 30);
                }
            });
            jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jf.setVisible(true);
        }    public static void main(String[] args) {
            new aa();
        }
    }
      

  2.   

    getGraphics()返回的应该是默认的,而不是你设置后的.所以,应该只调用一次,然后进行修改.