Jump to content


Windows Server 2012

- - - - -

ขอคำแนะนำการทำแผนผังเครือญาติด้วย JAVA


  • Please log in to reply
6 replies to this topic

#1 chan_1

chan_1

    Newbie

  • Members
  • Pip
  • 8 posts

Posted 12 February 2007 - 04:17 PM

ขอคำแนะนำการทำแผนผังเครือญาติด้วย  JAVA ครับ  คือใครเป็นพ่อ,แม่,ลูก,ปู่,ย่า  มีเส้นโยงหากัน

#2 up1

up1

    Topgun

  • Topgun
  • 2750 posts

Posted 12 February 2007 - 05:45 PM

View Postchan_1, on Feb 12 2007, 04:17 PM, said:

ขอคำแนะนำการทำแผนผังเครือญาติด้วย  JAVA ครับ  คือใครเป็นพ่อ,แม่,ลูก,ปู่,ย่า  มีเส้นโยงหากัน

ลองวาดภาพออกมาดูนะครับ  

จะเห็นว่ามันเป็น Tree !!!! นะครับ

#3 minimalist

minimalist

    Star

  • Star
  • 895 posts

Posted 12 February 2007 - 06:21 PM

สวัสดีครับ

ศึกษาพื้นฐาน OO เกี่ยวกับ Classification, Hierrarchy, Aggregation และ Composition
ศึกษา Analysis Pattern เกี่ยวกับ Person-Role
ศึกษา Design Pattern เช่น Abstract Factory, Factory Method และอีกหลายตัว

หรือหากเคยเรียนวิชาชีวะ (Biology) มา ให้นึกถึงเรื่องอนุกรมวิธาน (Taxonomy)

หรือให้นึกถึงเรื่องการจัดกลุ่มผลิตภัณฑ์ในงานผลิตสินค้า

ไป ๆ มา ๆ คลาสหลักอาจมีแค่ตัวเดียวก็ได้ แล้วเป็น Recursive กันไป เหมือนระบบ MLM
(Multi-Level Marketing)

minimalist (ณรงค์)

#4 chan_1

chan_1

    Newbie

  • Members
  • Pip
  • 8 posts

Posted 14 February 2007 - 12:06 PM

ขอบคุณครับที่ชี้แนะ  คือผมต้องการให้มันลากเส้น  เช่น  ถ้ามีลูกก็โยงหาลูก  ถ้าไม่มีก็ไม่ต้องโยงครับ  ซักประมาณ  3 ช่วงคน

#5 juacompe

juacompe

    Site Admin

  • Admin
  • PipPipPipPip
  • 2904 posts

Posted 14 February 2007 - 03:51 PM

ลองเปิด file %JAVA_HOME%/demo/applets.html

กดที่ link GraphLayout ในหมวด Utilities น่าจะเจอที่ถูกใจครับ

กดตรง link The source. ข้างล่าง หากต้องการดู source code นะครับ

#6 DarkClanz

DarkClanz

    Newbie

  • Members
  • Pip
  • 21 posts

Posted 30 October 2009 - 11:30 PM

ขออนุญาติขุดกระทู้ครับ พอดีกำลังทำอันนี้อยู่เหมือนกัน

ตอนนี้ผมพอทำส่วนของการโยงข้อมูลเข้าด้วยกันได้บางส่วนแล้วครับ (เอา object พ่อ แ่ม่ ลูก ต่างๆ มาต่อกันเป็นพวง)
ตอนนี้ ผมอยากทราบวิธีการคิดอัลกอริทึมที่ generate ไอ้เจ้าชุดข้อมูลที่เป็นพวงๆเนี่ยะ ให้ออกเป็นแผนผังเครือญาติ แสดงบน JPanel ครับ

ไม่ทราบว่าต้องเริ่มอย่างไรบ้างครับ

#7 chaaimSanti

chaaimSanti

    Member

  • Members
  • PipPip
  • 115 posts

Posted 02 November 2009 - 11:33 AM

code ที่วาดจาก JPanal ผมไม่มีน่ะครับ
แต่มี code ที่วาดต้นแบบเวียนเกิดใน Frame อยู่
ลองเอาไปประยุกต์ใช้ดูก็แล้วกันนะครับ

   นิยามว่า บรรพบุรุษคือรากของต้นไม้ทวิภาค >>>> root
   code ครับ

import java.awt.*;

public class BinaryTree {
  //....................
	public Canvas toCanvas() {
		return new TreeCanvas();
	}

[b]// ใช้ Frame ในการวาดต้นไม้
	private class TreeCanvas extends Canvas {

		int lppx, rppy; //มีไว้เปลี่ยนพิกัดของตารางเป็นพิกัดของจอภาพ

		@Override
		public void paint(Graphics g) {
			lppx = this.getWidth() / (2 + numNodes(root));
			rppy = this.getHeight() / (2 + height(root));
			drawTree(g, root, 1, 1);
		}

		int drawTree(Graphics g, Node r, int x0, int y0) {
			int xr = x0;
			if (r != null) {
				xr += numNodes(r.left);
				int lx = drawTree(g, r.left, x0, y0 + 1);
				int rx = drawTree(g, r.right, xr + 1, y0 + 1);
				drawNode(g, r, xr, y0);
				//มีลูกซ้ายวาดกิ่งซ้าย มีลูกขวาวาดกิ่งขวา
				if (r.left != null) {
					drawEdge(g, xr, y0, lx, y0 + 1);
				}
				if (r.right != null) {
					drawEdge(g, xr, y0, rx, y0 + 1);
				}
			}
			return xr;
		}
		// ใช้ในการวาดกิ่ง
		void drawEdge(Graphics g, int x1, int y1, int x2, int y2) {
			g.drawLine(x1 * lppx, y1 * rppy, x2 * lppx, y2 * rppy);
		}
	   // ใช้ในการแสดง element
		void drawNode(Graphics g, Node r, int x, int y) {
			int dy = r.isLeaf() ? 20 : 0;
			g.drawString(r.element.toString(), x * lppx, y * rppy + dy);
		}
	}[/b]
}
:rolleyes:




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users