50分-求[设计思路] 画的是一条条的线,还是弧线,还是扇形? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只有直线和弧线 没其他形状 角度自定是什么意思?说详细一些! 角度自定就是说两条线之间的角度是用户自己定义的比如可能是60度 也可能是135度 等等要根据不同的角度来把线按规定的角度画出来 /* * DrawTree.java * * Created on 2004年8月4日, 下午4:06 */package Foundation;import java.awt.*;import javax.swing.JComponent;import javax.swing.JPanel;/** * * @author Administrator */public class DrawTree{ //参数定义 private int size; private SearchTreeNode nodes[]; private int levels[]; private int nodesIndex; private final int diameter = 10; private JPanel panel; private Color color; private SearchTreeNode root; private int labelSize; //构造函数 public DrawTree(SearchTreeNode searchtreenode, int i, JPanel jPanel, Color color1, int j) { nodesIndex = -1; color = color1; root = searchtreenode; panel = jPanel; size = i; labelSize = j; color1 = Color.red; constructTree(); } //用递归的思想方法建立二叉排序树,把节点保存下来 private void build(SearchTreeNode searchtreenode, int i) { if(searchtreenode != null) { build(searchtreenode.left, i + 1); nodesIndex++; nodes[nodesIndex] = searchtreenode; levels[nodesIndex] = i; build(searchtreenode.right, i + 1); } } //清除画板空间 public void clearPanel() { Graphics g = panel.getGraphics(); g.setColor(panel.getBackground()); g.drawRect(panel.getVisibleRect().getBounds().x, panel.getVisibleRect().getBounds().y, panel.getVisibleRect().getBounds().width, panel.getVisibleRect().getBounds().height); g.fillRect(panel.getVisibleRect().getBounds().x, panel.getVisibleRect().getBounds().y, panel.getVisibleRect().getBounds().width, panel.getVisibleRect().getBounds().height); } //构造树 private void constructTree() { nodesIndex = -1; nodes = new SearchTreeNode[size]; levels = new int[size]; build(root, 1); for(int i = 0; i < size; i++) { drawNode(new Point(i * 20, levels[i] * 20), nodes[i].contents.toString()); if(nodes[i].left != null) { SearchTreeNode searchtreenode = nodes[i].left; int j = index(searchtreenode); drawLineSegment(new Point(i * 20, levels[i] * 20), new Point(j * 20, levels[j] * 20)); } if(nodes[i].right != null) { SearchTreeNode searchtreenode1 = nodes[i].right; int k = index(searchtreenode1); drawLineSegment(new Point(i * 20, levels[i] * 20), new Point(k * 20, levels[k] * 20)); } } } //画连接两个节点之间的线 private void drawLineSegment(Point point, Point point1) { Graphics g = panel.getGraphics(); g.setColor(color); g.drawLine(point.x + 5, point.y + 5, point1.x + 5, point1.y + 5); } //画节点 private void drawNode(Point point, String s) { Graphics g = panel.getGraphics(); g.setColor(color); g.drawOval(point.x, point.y, 10, 10); g.fillOval(point.x, point.y, 10, 10); g.setColor(Color.black); g.setFont(new Font("Times Roman", 0, 9)); String s1 = s.length() <= labelSize ? s : s.substring(0, labelSize); g.drawString(s1, point.x, point.y); } //序列化 private int index(SearchTreeNode searchtreenode) { for(int i = 0; i < size; i++) if(nodes[i] == searchtreenode) return i; return -1; } //更新画板 public void update(SearchTreeNode searchtreenode, int i) { clearPanel(); root = searchtreenode; size = i; constructTree(); }}这是一个画二叉树的类,你可以看看是否有帮助。其他的是爱莫能助了 三角函数计算出线的对应坐标点 form传值的问题 根据当前时间返回去除节假日,和周六日的天数后10天的时间 Xquery 选取 top 10 小弟求一份 Ajax 自动补全的 例子。。。 hibernate 里面一对一怎么设置 我连接Ms sql 2005报错 怎样配置path和classpath,在线等,跪求 本人初学JAVA 想问一下大神们javaee 都有哪些体系结构 如何获取带有Controller注解的类? 请教junit测试struts中的action的问题!! 请大家指点怎么安装和使用 请问,关于struts的问题!
* DrawTree.java
*
* Created on 2004年8月4日, 下午4:06
*/package Foundation;import java.awt.*;
import javax.swing.JComponent;
import javax.swing.JPanel;/**
*
* @author Administrator
*/
public class DrawTree
{
//参数定义
private int size;
private SearchTreeNode nodes[];
private int levels[];
private int nodesIndex;
private final int diameter = 10;
private JPanel panel;
private Color color;
private SearchTreeNode root;
private int labelSize;
//构造函数
public DrawTree(SearchTreeNode searchtreenode, int i, JPanel jPanel, Color color1, int j)
{
nodesIndex = -1;
color = color1;
root = searchtreenode;
panel = jPanel;
size = i;
labelSize = j;
color1 = Color.red;
constructTree();
}
//用递归的思想方法建立二叉排序树,把节点保存下来
private void build(SearchTreeNode searchtreenode, int i)
{
if(searchtreenode != null)
{
build(searchtreenode.left, i + 1);
nodesIndex++;
nodes[nodesIndex] = searchtreenode;
levels[nodesIndex] = i;
build(searchtreenode.right, i + 1);
}
}
//清除画板空间
public void clearPanel()
{
Graphics g = panel.getGraphics();
g.setColor(panel.getBackground());
g.drawRect(panel.getVisibleRect().getBounds().x, panel.getVisibleRect().getBounds().y, panel.getVisibleRect().getBounds().width, panel.getVisibleRect().getBounds().height);
g.fillRect(panel.getVisibleRect().getBounds().x, panel.getVisibleRect().getBounds().y, panel.getVisibleRect().getBounds().width, panel.getVisibleRect().getBounds().height);
}
//构造树
private void constructTree()
{
nodesIndex = -1;
nodes = new SearchTreeNode[size];
levels = new int[size];
build(root, 1);
for(int i = 0; i < size; i++)
{
drawNode(new Point(i * 20, levels[i] * 20), nodes[i].contents.toString());
if(nodes[i].left != null)
{
SearchTreeNode searchtreenode = nodes[i].left;
int j = index(searchtreenode);
drawLineSegment(new Point(i * 20, levels[i] * 20), new Point(j * 20, levels[j] * 20));
}
if(nodes[i].right != null)
{
SearchTreeNode searchtreenode1 = nodes[i].right;
int k = index(searchtreenode1);
drawLineSegment(new Point(i * 20, levels[i] * 20), new Point(k * 20, levels[k] * 20));
}
}
}
//画连接两个节点之间的线
private void drawLineSegment(Point point, Point point1)
{
Graphics g = panel.getGraphics();
g.setColor(color);
g.drawLine(point.x + 5, point.y + 5, point1.x + 5, point1.y + 5);
}
//画节点
private void drawNode(Point point, String s)
{
Graphics g = panel.getGraphics();
g.setColor(color);
g.drawOval(point.x, point.y, 10, 10);
g.fillOval(point.x, point.y, 10, 10);
g.setColor(Color.black);
g.setFont(new Font("Times Roman", 0, 9));
String s1 = s.length() <= labelSize ? s : s.substring(0, labelSize);
g.drawString(s1, point.x, point.y);
}
//序列化
private int index(SearchTreeNode searchtreenode)
{
for(int i = 0; i < size; i++)
if(nodes[i] == searchtreenode)
return i;
return -1;
}
//更新画板
public void update(SearchTreeNode searchtreenode, int i)
{
clearPanel();
root = searchtreenode;
size = i;
constructTree();
}
}
这是一个画二叉树的类,你可以看看是否有帮助。其他的是爱莫能助了