在一个面板上画多个组件时出的问题

sake92 2012-09-02 01:09:10
最近刚接触java的图形化编程,出了点问题,希望各位大牛们指教啊。
代码很简单,我在Sheep的main函数里,调用MainFrame类生成了一哥面板,然后调用Draw类和DrawR类,两个类差不多的,都是往一个面板上画三角形,只是一个画的是黑色一个是红色。所有的三角形坐标都是随即生成的,但是生成的结果却是下图那般——所有红色的都在黑色的右边,而且我在程序中间加了休眠试过,发现完全是从左边往右边生成组件的,坐标的生成根本没有随即的感觉,不知道是怎么回事呢。
是不是我这种操作方法有问题,希望能够有大牛们指教一下哦,我java的图形化编程巨烂,希望能详细点,要是有代码更好了。谢谢啊!
public class Sheep {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MainFrame mainframe = new MainFrame();

for(int i = 0; i < 10; i++){
Draw draw = new Draw();
mainframe.add(draw);
}
for(int i = 0; i < 10; i++){
DrawR drawr = new DrawR();
mainframe.add(drawr);
}
}
}


import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JFrame;

public class MainFrame extends JFrame{
public MainFrame(){
super();
this.setVisible(true);
this.setSize(400, 400);
this.setLayout(new GridLayout()); // 设置JFrame的布局,用于多个JPanel的布局设置
}

/**
* 在当前的JFrame添加Draw组件
* @param draw
*/
public void add(Draw draw){
Container content = getContentPane();
content.add(draw);
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;

import javax.swing.JPanel;


public class Draw extends JPanel{
/**
* 构造函数:用于设置Panel的背景颜色
*/
public Draw(){
this.setBackground(Color.WHITE);
}

public void paintComponent(Graphics g){
super.paintComponent(g);

g.setColor(Color.black);
Random random = new Random();
int x = Math.abs(random.nextInt()%80);
int y = Math.abs(random.nextInt()%80);
System.out.println(x + " " + y);
g.fillArc(x, y, 20, 20, 60, 60);

this.setOpaque(false);
}
}

import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;

import javax.swing.JPanel;

public class DrawR extends JPanel{
public DrawR(){
this.setBackground(Color.WHITE);
}

public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.red);
Random random = new Random();
int x = Math.abs(random.nextInt()%80);
int y = Math.abs(random.nextInt()%80);
System.out.println(x + " " + y);
g.fillArc(x, y, 20, 20, 60, 60);

this.setOpaque(false);
}
}


...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sake92 2012-09-02
  • 打赏
  • 举报
回复
呜呜,就木有人帮忙看看嘛
sake92 2012-09-02
  • 打赏
  • 举报
回复
呜呜,就木有人帮忙看看么
sake92 2012-09-02
  • 打赏
  • 举报
回复
呜呜,就木有人帮忙看看么

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧