我想在屏幕上随机画10个圆(当点下鼠标时),写了如下的程序代码,能够生成class文件,但就是不能画圆,请高手们指点我下,应该如何改进?import java.awt.*;
import java.awt.event.*;
import java.awt.Color;
public class Test extends Frame implements ActionListener
{
final int A=10;
final int B=150;
int x[]=new int[10];
int y[]=new int[10];
public int j=0;
Button b1=new Button("清除");
Panel p1=new Panel(new FlowLayout());
public Test()
{
this.add(p1);
p1.add(b1);
b1.addActionListener(this);
this.addMouseListener(new LL());
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
j=0;
repaint();
}
public void paint(Graphics g)
{
int k=0;
for(int i=0;i<A;i++)
{
k=(int)(Math.random()*B);
g.setColor(Color.blue);
g.fillOval(x[j],y[j],k,k);
}
}
public static void main(String args[])
{
Test t1=new Test();
t1.setVisible(true);
}
class LL extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
if(j<A)
{
x[j]=e.getX();
y[j]=e.getY();
j++;
repaint();}
}
}
}
import java.awt.event.*;
import java.awt.Color;
public class Test extends Frame implements ActionListener
{
final int A=10;
final int B=150;
int x[]=new int[10];
int y[]=new int[10];
public int j=0;
Button b1=new Button("清除");
Panel p1=new Panel(new FlowLayout());
public Test()
{
this.add(p1);
p1.add(b1);
b1.addActionListener(this);
this.addMouseListener(new LL());
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
j=0;
repaint();
}
public void paint(Graphics g)
{
int k=0;
for(int i=0;i<A;i++)
{
k=(int)(Math.random()*B);
g.setColor(Color.blue);
g.fillOval(x[j],y[j],k,k);
}
}
public static void main(String args[])
{
Test t1=new Test();
t1.setVisible(true);
}
class LL extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
if(j<A)
{
x[j]=e.getX();
y[j]=e.getY();
j++;
repaint();}
}
}
}
解决方案 »
- 怎样实现下面的功能?
- 请问用什么方法使JTree中的某个结点滚到滚动栏的第一行?
- 请问14位的数字字符串能够比较大小么?
- java技术交流站 群号:2303735
- 请问如何在JAVA下面取得D或其他盘的大小,以及如何获取一个文件的创建日期?谢谢!
- 为什么不能重置单选框的状态?!
- 请大家帮我测试一下这个网页(100分呈上)!!
- 請問大家是否有 JBuilder 7.0 serial number key 幫忙郵我一個我是 http://libo-lighting.51.net/javajia/download.php 從下載的!
- 哪里有Driver for mysql的?还是JDK本身就有?
- 一道关于内存回收的问题
- 困扰我多年的恶梦,高手请进,高分相送,对你们应该简单的,关于多线程。。。
- 看看我这个是什么问题
this.add(p1,BorderLayout.NORTH);
是不是panel把Frame遮盖的问题?
我是菜鸟,只是推测。
p1.addMouseListener(new LL());
1,在那个组件上面画
2,那个组件触发事件,那个组件刷新
public class Test1 extends Frame implements ActionListener {
final int A = 10;
final int B = 150;
int x[] = new int[10];
int y[] = new int[10];
public int j = 0;
Button b1 = new Button("清除");
// Panel p1 = new Panel(new FlowLayout()); public Test1() {
// this.add(p1);
// p1.add(b1);
// b1.addActionListener(this);
this.addMouseListener(new LL());//第一处错误,事件加错对象了
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}); } public void actionPerformed(ActionEvent e) {
j = 0;
repaint();
} public void paint(Graphics g) {
int k = 0;
for (int i = 0; i < A; i++) {
k = (int) (Math.random() * B);
g.setColor(Color.blue);
System.out.println(x[i]+" "+y[i]+" "+ 10+" "+10);
g.fillOval(x[i], y[i], k, k);
}
} public static void main(String args[]) {
Test1 t1 = new Test1();
t1.setVisible(true);
} class LL extends MouseAdapter {
public void mousePressed(MouseEvent e) {
if (j < A) {
x[j] = e.getX();
y[j] = e.getY();
j++;
repaint();
}
}
}}