一个简单的画图问题~白送分了~

Cheney618 2007-10-26 11:44:27
public class BiTree extends JFrame{

/**
*
*/
private static final long serialVersionUID = 1751896756555614768L;
/**
* @param args
*/
int floor = 3; //层数
int count = 3; //个数
int nodeRadius = 30; // 节点圆圈的半径
int width = 40;
int height = 900/2-nodeRadius;
int distanceHeight = 200; // 两个节点之间的宽度差
int distanceWidth = 110; // 两个节点之间的高度差
int disHChange = distanceHeight/2;




public static void main(String[] args) {
// TODO 自动生成方法存根
new BiTree().show();
}
public BiTree(){
setBackground(Color.white);
setTitle("图形实例");
setSize(900,600);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt){
setVisible(false);
System.exit(0);
}
});
Container contentPane= getContentPane();
contentPane.add(new GExamplePanel());
}
class GExamplePanel extends JPanel{
/**
*
*/
Graphics myGraphics;
private static final long serialVersionUID = 1359674645063539054L;

public void paintComponent(Graphics g){

g.setColor(getForeground());
Font font = new Font("宋体",Font.PLAIN+Font.BOLD,16);
g.setFont(font);

g.drawOval(height,width,nodeRadius*2,nodeRadius*2);
int x = height + nodeRadius;
int y = width+ nodeRadius;
height =height- distanceHeight;
width= width+distanceWidth;
for (int i = 0; i < count; ++i){
g.drawOval(height,width,nodeRadius*2,nodeRadius*2);
for (int z = i;z<count;++z){
g.drawOval(height-disHChange,width+distanceWidth,nodeRadius*2,nodeRadius*2);
g.drawOval(height+disHChange,width+distanceWidth,nodeRadius*2,nodeRadius*2);
g.drawOval(height,width+distanceWidth,nodeRadius*2,nodeRadius*2);
}
g.drawLine(x, y, height+nodeRadius, width+nodeRadius);
height = height + distanceHeight;
}
width= width+distanceWidth;
}
}
}
求一段 设置,层数和,个数 能够自动画出图来的代码~谢谢,各位大虾了,小弟初学~
...全文
224 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nonetracer 2007-12-07
  • 打赏
  • 举报
回复
画图的确不是那么简单滴问题,我前段时间刚弄完,用的ImageEditor.jar,你可以看看这个,虽然也不是非常完善,但大体上已经很好了。
层的问题其实很简单,自己就可以实现,不过要先了解Java画图的一些类。比如BufferedImage、AffineTransform等是实现的主要利器。认真看看他们。

另外,java做绘图软件有一个弊端,就是BufferedImage会浪费大量的内存,一个1024*768的图片可能就消耗两位数MB的内存,因此,我只能通过限制层数来解决,要不很容易就内存溢出,不知道其他大侠们有什么解决办法?
大家一起探讨
huadis 2007-12-03
  • 打赏
  • 举报
回复
你用VECTOR做,另外再写个存储结点信息的类NODE,主要放上下级结点ID/名称等,以便于遍历.将NODE实例放入VECTOR.至于显示那我就帮不了了,很复杂的,要涉及到碰撞检测,这个有点难的.
zhoche2008 2007-11-09
  • 打赏
  • 举报
回复
不是不想帮你,是无能为力啊.没画过图.美术小时候学过.最近没学.
xhg426617608 2007-11-06
  • 打赏
  • 举报
回复
本公司专业承接PCB印制线路板厂家。主要生产单,双以及多层线路板,盲孔,高频板等。最小孔径0.15mm,是小线距0.1mm. 表面处理:防氧化,镀金,镀锡.无铅工艺等等.质量保证,交货及时.最快24小时交货,月产量1.2万个平方米.本企业已经过ISO9000:2000/ISO14001质量休系/环保体系国际认证和UL认证.以及欧洲环保认证(ROHS认证).双赢互利是我们的一贯经营理念。我们期盼与业内朋友放眼世界、展望未来、携手并进、齐享高科技的结晶,共创辉煌! (24小时提供PCB相关技术支持!欢迎您与我们联系)
联系人:吕先生
深圳市奔强电路有限公司 www.szbq168.com
TEL:0755-29606209 13798334626
MSN:BQPCBLTD@HOTMAIL.COM
SKYPE:LTDLFPCB QQ:426617608
邮箱:BQPCB@VIP.163.COM
Cheney618 2007-11-06
  • 打赏
  • 举报
回复
难道真的没人帮帮小弟么?
shenhuax 2007-11-05
  • 打赏
  • 举报
回复
顶一下
lihaifeng0412 2007-11-05
  • 打赏
  • 举报
回复
顶下
Cheney618 2007-11-05
  • 打赏
  • 举报
回复
是这样的~是不是需要用到ArrayList ?因为小弟初学所以还有很多不明白~
只是需要完成一个二叉树,的画图~可以自己定义层数~
Cheney618 2007-10-29
  • 打赏
  • 举报
回复
求助啊~
huadis 2007-10-29
  • 打赏
  • 举报
回复
你这个问题并不简单,不知道你画这个图是做什么用的。不过我认为要用到好多算法,如果是交互式的就更麻烦。
Cheney618 2007-10-26
  • 打赏
  • 举报
回复
帮帮小弟啊~
约翰羊 2007-10-26
  • 打赏
  • 举报
回复
帮你顶
Cheney618 2007-10-26
  • 打赏
  • 举报
回复
苦命自己继续顶

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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