代码如下: public void mop2() { //final float r,g,b; Random random = new Random(); final float r0 = random.nextFloat();// 0<=r0<1 final float r = Math.round(255*r0); final float g = Math.round(255*r0); final float b = Math.round(255*r0); f.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { Color c = new Color(r,g,b); } }); } 520zju(生活咖啡) :是要显示被鼠标点击的那个点的颜色
f.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { Color c = new Color(r,g,b); int X = e.getX(); int Y = e.getY(); e.fillOval(X,Y,5,6); e.setColor(c); } });编译出错。。应该是对象的指定问题
fillOval和setColor都是java.awt.Graphics方法 Graphics g = component.getGraphics(this);//component是你定义的那一个 g.setColor(c); g.fillOval(X,Y,5,5);//后两个参数相等可以画出圆,不等是椭圆 还有就是画图的部分一般是在paint()中完成的,可以在你的事件处理中调用repaint()以引起程序调用paint()。
哦,Graphics g= component.getGraphics(); 没有参数。
感谢520zju(生活咖啡)一直关注我的问题。上面的方法大应该可行,但是需要调用的变量c,X,Y是在上面的匿名类中产生的,那么在外部怎么访问匿名类产生的变量呢? 直接把这两个语句加上去,是不能解析的 Graphics gr = f.getGraphics(); gr.setColor(c);
public void mop2()
{
//final float r,g,b;
Random random = new Random();
final float r0 = random.nextFloat();// 0<=r0<1
final float r = Math.round(255*r0);
final float g = Math.round(255*r0);
final float b = Math.round(255*r0); f.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
Color c = new Color(r,g,b);
}
});
}
520zju(生活咖啡) :是要显示被鼠标点击的那个点的颜色
画图的method是什么呢?
颜色就是用你得到的随机颜色(setColor(c);)
我发现上面这么多代码,都没有面对一个对象。。头疼了,怎么申明这样一个对象呢?一个点对象
{
public void mouseClicked(MouseEvent e)
{
Color c = new Color(r,g,b);
int X = e.getX();
int Y = e.getY();
e.fillOval(X,Y,5,6);
e.setColor(c);
}
});编译出错。。应该是对象的指定问题
Graphics g = component.getGraphics(this);//component是你定义的那一个
g.setColor(c);
g.fillOval(X,Y,5,5);//后两个参数相等可以画出圆,不等是椭圆
还有就是画图的部分一般是在paint()中完成的,可以在你的事件处理中调用repaint()以引起程序调用paint()。
没有参数。
直接把这两个语句加上去,是不能解析的
Graphics gr = f.getGraphics();
gr.setColor(c);