<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>淡泊以明志 宁静以致远</title>
    <description></description>
    <link>http://yongsky.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>学习EXT过程中做的一个例子</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/150258" style="color:red;">http://yongsky.javaeye.com/blog/150258</a>&nbsp;
          发表时间: 2007年12月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          请看附件中的eclipse工程文件．【补充：源文件是WebRoot/ext/viewport.jsp】
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/150258#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 23 Dec 2007 12:56:23 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/150258</link>
        <guid>http://yongsky.javaeye.com/blog/150258</guid>
      </item>
      <item>
        <title>Java数据结构和算法--树</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/130878" style="color:red;">http://yongsky.javaeye.com/blog/130878</a>&nbsp;
          发表时间: 2007年10月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          (1)二叉树<br /><pre name="code" class="java">package ChapterEight;

class Tree {
	class Node {
		public long value;

		public Node leftChild;

		public Node rightChild;

		public Node(long value) {
			this.value = value;
			leftChild = null;
			rightChild = null;
		}
	}

	public Node root;

	public Tree() {
		root = null;
	}

	// 向树中插入一个节点
	public void insert(long value) {
		Node newNode = new Node(value);
		// 树是空的
		if (root == null)
			root = newNode;
		else {
			Node current = root;
			Node parentNode;
			while (true) {
				parentNode = current;
				if (value &lt; current.value) {
					current = current.leftChild;
					// 要插入的节点为左孩子节点
					if (current == null) {
						parentNode.leftChild = newNode;
						return;
					}
				} else {
					// 要插入的节点为右孩子节点
					current = current.rightChild;
					if (current == null) {
						parentNode.rightChild = newNode;
						return;
					}
				}
			}
		}
	}

	// 先续遍历树中的所有节点
	public void preOrder(Node currentRoot) {
		if (currentRoot != null) {
			System.out.print(currentRoot.value + " ");
			preOrder(currentRoot.leftChild);
			preOrder(currentRoot.rightChild);
		}
	}

	// 中续遍历树中的所有节点
	public void inOrder(Node currentNode) {
		if (currentNode != null) {
			inOrder(currentNode.leftChild);
			System.out.print(currentNode.value + " ");
			inOrder(currentNode.rightChild);
		}
	}

	// 后续遍历树中的所有节点
	public void postOrder(Node currentNode) {
		if (currentNode != null) {
			postOrder(currentNode.leftChild);
			postOrder(currentNode.rightChild);
			System.out.print(currentNode.value + " ");
		}
	}

	public void traverse(int traverseType) {
		switch (traverseType) {
		case 1:
			preOrder(root);
			break;
		case 2:
			inOrder(root);
			break;
		case 3:
			postOrder(root);
			break;
		default:
			break;
		}
	}

	// 依据树节点的值删除树中的一个节点
	public boolean delete(int value) {
		// 遍历树过程中的当前节点
		Node current = root;
		// 要删除节点的父节点
		Node parent = root;
		// 记录树的节点为左孩子节点或右孩子节点
		boolean isLeftChild = true;
		while (current.value != value) {
			parent = current;
			// 要删除的节点在当前节点的左子树里
			if (value &lt; current.value) {
				isLeftChild = true;
				current = current.leftChild;
			}
			// 要删除的节点在当前节点的右子树里
			else {
				isLeftChild = false;
				current = current.rightChild;
			}
			// 在树中没有找到要删除的节点
			if (current == null)
				return false;
		}
		// 要删除的节点为叶子节点
		if (current.leftChild == null && current.rightChild == null) {
			// 要删除的节点为根节点
			if (current == root)
				root = null;
			// 要删除的节点为左孩子节点
			else if (isLeftChild)
				parent.leftChild = null;
			// 要删除的节点为右孩子节点
			else
				parent.rightChild = null;
		}
		// 要删除的节点有左孩子节点，没有右孩子节点
		else if (current.rightChild == null) {
			// 要删除的节点为根节点
			if (current == null)
				root = current.leftChild;
			// 要删除的节点为左孩子节点
			else if (isLeftChild)
				parent.leftChild = current.leftChild;
			// 要删除的节点为右孩子节点
			else
				parent.rightChild = current.leftChild;
		}
		// 要删除的节点没有左孩子节点，有右孩子节点
		else if (current.leftChild == null) {
			// 要删除的节点为根节点
			if (current == root)
				root = root.rightChild;
			// 要删除的节点为左孩子节点
			else if (isLeftChild)
				parent.leftChild = current.rightChild;
			// 要删除的节点为右孩子节点
			else
				parent.rightChild = current.rightChild;
		}
		// 要删除的接节点既有左孩子节点又有右孩子节点
		else {
			Node successor = getSuccessor(current);
			// 要删除的节点为根节点
			if (current == root)
				root = successor;
			// 要删除的节点为左孩子节点
			else if (isLeftChild)
				parent.leftChild = successor;
			// 要删除的节点为右孩子节点
			else
				parent.rightChild = successor;
		}
		return true;
	}

	// 找到要删除节点的替补节点
	private Node getSuccessor(Node delNode) {
		// 替补节点的父节点
		Node successorParent = delNode;
		// 删除节点的替补节点
		Node successor = delNode;
		Node current = delNode.rightChild;
		while (current != null) {
			// successorParent指向当前节点的上一个节点
			successorParent = successor;
			// successor变为当前节点
			successor = current;
			current = current.leftChild;
		}
		// 替补节点的右孩子节点不为空
		if (successor != delNode.rightChild) {
			successorParent.leftChild = successor.rightChild;
			successor.rightChild = delNode.rightChild;
		}
		return successor;
	}
}

public class TreeApp {
	public static void main(String[] args) {
		Tree tree = new Tree();
		tree.insert(8);
		tree.insert(50);
		tree.insert(45);
		tree.insert(21);
		tree.insert(32);
		tree.insert(18);
		tree.insert(37);
		tree.insert(64);
		tree.insert(88);
		tree.insert(5);
		tree.insert(4);
		tree.insert(7);

		System.out.print("PreOrder : ");
		tree.traverse(1);
		System.out.println();

		System.out.print("InOrder : ");
		tree.traverse(2);
		System.out.println();

		System.out.print("PostOrder : ");
		tree.traverse(3);
		System.out.println();

		System.out.println(tree.delete(7));

		System.out.print("PreOrder : ");
		tree.traverse(1);
		System.out.println();

		System.out.print("InOrder : ");
		tree.traverse(2);
		System.out.println();

		System.out.print("PostOrder : ");
		tree.traverse(3);
		System.out.println();

	}
}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/130878#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 10 Oct 2007 21:22:21 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/130878</link>
        <guid>http://yongsky.javaeye.com/blog/130878</guid>
      </item>
      <item>
        <title>Java数据结构和算法--链表</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/128951" style="color:red;">http://yongsky.javaeye.com/blog/128951</a>&nbsp;
          发表时间: 2007年10月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          (1)简单链表<br /><pre name="code" class="java">package ChapterFive;

class Link&lt;E> {

	public E data;

	public Link&lt;E> next;

	public Link(E data) {
		this.data = data;
	}
}

class LinkList&lt;E> {

	public Link&lt;E> first;
	//链表中数据项的个数
	public int size;

	public LinkList() {
		first = null;
		size = 0;
	}
	//在表头插入新的数据
	public void insertFirst(E value) {
		Link&lt;E> link = new Link&lt;E>(value);
		link.next = first;
		first = link;
		size++;
	}
	//判断链表是否为空
	public boolean isEmpty() {
		return size == 0;
	}
	//删除表头
	public Link&lt;E> deleteFirst() {
		Link&lt;E> temp = first;
		first = first.next;
		size--;
		return temp;
	}
	//输出链表中的所有数据
	public void display() {
		Link&lt;E> curr = first;
		while (curr != null) {
			System.out.print(curr.data + " ");
			curr = curr.next;
		}
		System.out.println();
	}
	//返回链表中数据项的个数
	public int size() {
		return size;
	}
	//获取从头至尾的第i个数据项
	public Link&lt;E> get(int i) {
		if (i > size() - 1 || i &lt; 0)
			try {
				throw new IndexOutOfBoundsException();
			} catch (Exception e) {
				e.printStackTrace();
			}
		Link&lt;E> curr = first;
		for (int n = 0; n &lt; size(); n++) {
			if (n == i)
				return curr;
			else
				curr = curr.next;
		}
		return null;
	}
	//输出从头至尾的第i个数据项
	public void remove(int i) {
		if (i == 0)
			deleteFirst();
		else if (i == size() - 1)
			get(i - 1).next = null;
		else {
			get(i - 1).next = get(i + 1);
		}
		size--;
	}
}

public class Link_list {
	public static void main(String[] args) {
		LinkList&lt;Long> ll = new LinkList&lt;Long>();
		for (int i = 0; i &lt; 10; i++) {
			Long value = (long) (Math.random() * 100);
			ll.insertFirst(value);
		}
		ll.display();
		while (!ll.isEmpty()) {
			ll.deleteFirst();
			ll.display();
		}
		System.out.println("Ok");
	}
}</pre><br />(2)链栈<br /><pre name="code" class="java">package ChapterFive;

class LinkStack&lt;E> {

	LinkList&lt;E> linkList;

	int size;

	public LinkStack() {
		size = 0;
		linkList = new LinkList&lt;E>();
	}
	//入栈
	public void push(E value) {
		linkList.insertFirst(value);
		size++;
	}
	//出栈
	public Link&lt;E> pop() {
		size--;
		return linkList.deleteFirst();
	}
	//返回栈顶元素
	public Link&lt;E> top() {
		return linkList.first;
	}
	//判断栈是否为空
	public boolean isEmpty() {
		return size == 0;
	}
	//显示栈中的全部数据
	public void display() {
		linkList.display();
	}
}

public class Link_stack {
	public static void main(String[] args) {
		LinkStack&lt;Long> ls = new LinkStack&lt;Long>();
		for (int i = 0; i &lt; 10; i++) {
			Long value = new Long((long) (Math.random() * 100));
			ls.push(value);
		}
		while (!ls.isEmpty()) {
			ls.pop();
			ls.display();
		}
		System.out.println("Ok");
	}
}</pre><br />(3)有序表<br /><pre name="code" class="java">package ChapterFive;

class SortedLink {

	public Link&lt;Long> first;

	int size;

	public SortedLink() {
		first = null;
		size = 0;
	}
	//向有序链表中插入数据
	public void insert(long value) {
		Link&lt;Long> newLink = new Link&lt;Long>(value);
		Link&lt;Long> previous = null;
		Link&lt;Long> curr = first;
		while (curr != null && (value > curr.data)) {
			previous = curr;
			curr = curr.next;
		}
		if (previous == null)// 链表为空(在表头插入)
			first = newLink;
		else
			previous.next = newLink;//插入新的节点
		newLink.next = curr;
		size++;
	}
	//删除第一个节点
	public Link&lt;Long> remove() {
		Link&lt;Long> temp = first;
		first = first.next;
		size--;
		return temp;
	}
	//判断链表是否为空
	public boolean isEmpty() {
		return size == 0;
	}
	//输出链表的所有数据
	public void display() {
		Link&lt;Long> curr = first;
		while (curr != null) {
			System.out.print(curr.data + " ");
			curr = curr.next;
		}
		System.out.println();
	}
}

public class SortedLinkApp {
	public static void main(String[] args) {
		SortedLink sl = new SortedLink();
		for (int i = 0; i &lt; 10; i++) {
			sl.insert((long) (Math.random() * 100));
		}
		while (!sl.isEmpty()) {
			sl.remove();
			sl.display();
		}
	}
}</pre><br />(4)双向链表<br /><pre name="code" class="java">package ChapterFive;

class DoubleLink&lt;E> {

	public Link&lt;E> first;

	public Link&lt;E> last;

	int size;

	@SuppressWarnings("hiding")
	class Link&lt;E> {
		public E data;

		public Link&lt;E> next;// 链表的下一项

		public Link&lt;E> previous;// 链表的前一项

		public Link(E value) {
			this.data = value;
		}
	}

	public DoubleLink() {
		first = null;
		last = null;
		size = 0;
	}

	// 在链表的首部插入一项
	public void insertFirst(E value) {
		Link&lt;E> newLink = new Link&lt;E>(value);
		if (isEmpty())// 如果链表为空则first == last
			last = newLink;
		else
			first.previous = newLink;// 确定原first与newLink的前后关系
		newLink.next = first;
		first = newLink;// 设置新的first值
		size++;
	}

	// 在链表的尾部插入一项
	public void insertLast(E value) {
		Link&lt;E> newLink = new Link&lt;E>(value);
		if (isEmpty())// 如果链表为空则last == first
			first = newLink;
		else {
			last.next = newLink;// 确定原last与newLink的前后关系
			newLink.previous = last;
		}
		last = newLink;// 设置新的last值
		size++;
	}

	// 删除双向链表的表头
	public Link&lt;E> deleteFirst() {
		Link&lt;E> temp = first;
		if (first.next == null)// 链表中只有一项数据
			last = null;
		else
			first.next.previous = null;// 销毁原链表的头部
		first = first.next;
		size--;
		return temp;
	}

	// 删除链表的最后一项
	public Link&lt;E> deleteLast() {
		Link&lt;E> temp = last;
		if (first.next == null)// 链表中只有一项数据
			first = null;
		else
			last.previous.next = null;// 销毁原链表的尾部
		last = last.previous;
		size--;
		return temp;
	}

	// 判断链表是否为空
	public boolean isEmpty() {
		return size == 0;
	}

	// 输出链表中的所有数据项
	public void display() {
		Link&lt;E> curr = first;
		while (curr != null) {
			System.out.print(curr.data + " ");
			curr = curr.next;
		}
		System.out.println();
	}
}

public class DoubleLinkApp {
	public static void main(String[] args) {
		DoubleLink&lt;Integer> dl = new DoubleLink&lt;Integer>();
		for (int i = 0; i &lt; 5; i++) {
			dl.insertFirst((int) (Math.random() * 100));
		}
		for (int i = 0; i &lt; 5; i++) {
			dl.insertLast((int) (Math.random() * 100));
		}
		dl.display();
		while (!dl.isEmpty()) {
			dl.deleteFirst();
			dl.deleteLast();
			dl.display();
		}
		System.out.println("Ok");
	}
}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/128951#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 03 Oct 2007 15:06:06 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/128951</link>
        <guid>http://yongsky.javaeye.com/blog/128951</guid>
      </item>
      <item>
        <title>Java数据结构和算法--栈与队列</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/128549" style="color:red;">http://yongsky.javaeye.com/blog/128549</a>&nbsp;
          发表时间: 2007年09月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          (1)栈<br /><pre name="code" class="java">package ChapterOne;

public class Stack {
	//栈数组
	long stackArr[];
	//栈的大小
	int maxSize;
	//栈的顶部
	int top;
	//初始化一个大小为size的栈
	public Stack(int size){
		maxSize = size; 
		stackArr = new long[size];
		top = -1;
	}
	//出栈操作
	public long pop(){
		return stackArr[top--];
	}
	//进栈操作
	public void push(long value){
		stackArr[++top] = value;
	}
	//判断栈是否为空
	public boolean isEmpty(){
		return top == -1;
	}
	//判断栈是否已满
	public boolean isFull(){
		return top == maxSize-1;
	}
	//取栈顶元素
	public long peek(){
		return stackArr[top];
	}
	public static void main(String[] args) {
		Stack stack = new Stack(10);
		while(!stack.isFull()){
			long v = (long) (Math.random()*100);
			stack.push(v);
			System.out.print(v+" ");
		}
		System.out.println();
		while(!stack.isEmpty()){
			long topValue = stack.pop();
			System.out.print(topValue+" ");
		}
		System.out.println();
	}
}</pre><br />(2)队列<br /><pre name="code" class="java">package ChapterOne;

public class Queue {
	//队列数组
	private long queueArr[];
	//队列的前端下标
	private int front;
	//队列的尾端下标
	private int rear;
	//队列的大小
	private int maxSize;
	//队列中元素的个数
	private int nItems;
	//初始化一个大小为size的队列
	public Queue(int size){
		queueArr = new long[size];
		maxSize = size;
		front = 0;
		rear = -1;
		nItems = 0;
	}
	//插入操作
	public void insert(long value){
		//队列已满
		if(rear == maxSize-1)
			rear = -1;
		queueArr[++rear] = value;
		nItems++;
	}
	//删除操作
	public long remove(){
		long temp = queueArr[front++];
		if(front == maxSize)
			front = 0;
		nItems--;
		return temp;
	}
	//返回队列第一个元素
	public long peakFront(){
		return queueArr[front];
	}
	//判断是否为空
	public boolean isEmpty(){
		return nItems == 0;
	}
	//判断是否已满
	public boolean isFull(){
		return nItems == maxSize;
	}
	//返回队列中元素的个数
	public int size(){
		return nItems;
	}
	
	public void print(){
		for(int i = front;i &lt; front+nItems;i++){
			System.out.print(queueArr[i]+" ");
		}
		System.out.println();
	}
	
	public static void main(String[] args) {
		Queue q = new Queue(10);
		while(!q.isFull()){
			long value = (long)(Math.random()*100);
			q.insert(value);
		}
		q.print();
		while(!q.isEmpty()){
			q.remove();
			q.print();
		}
		q.print();
		System.out.println(q.isEmpty());
	}
}</pre><br />(3)优先队列<br /><pre name="code" class="java">package ChapterOne;

public class PriorityQueue {

	private int nItems;
	
	private long pqArr[];
	
	private int maxSize;
	
	public PriorityQueue(int size){
		maxSize = size;
		pqArr = new long[size];
		nItems = 0;
	}
	
	public void insert(long value){
		int i;
		if(nItems == 0)
			pqArr[nItems++] = value;
		else{
			for(i = nItems-1;i >= 0;i--){
				if(value &lt; pqArr[i]){
					pqArr[i+1] = pqArr[i];
				}
				else
					break;
			}
			pqArr[i+1] = value;
			nItems++;
		}
	}
	
	public long remove(){
		return pqArr[--nItems];
	}
	
	public boolean isEmpty(){
		return nItems == 0;
	}
	
	public boolean isFull(){
		return nItems == maxSize;
	}
	
	public void print(){
		for(int i = 0;i &lt; nItems;i++)
			System.out.print(pqArr[i]+" ");
		System.out.println();
	}
	
	public static void main(String[] args) {
		PriorityQueue pq = new PriorityQueue(10);
		while(!pq.isFull()){
			long value = (long)(Math.random()*100);
			pq.insert(value);
		}
		pq.print();
	}
}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/128549#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 30 Sep 2007 22:01:53 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/128549</link>
        <guid>http://yongsky.javaeye.com/blog/128549</guid>
      </item>
      <item>
        <title>Java数据结构和算法--排序</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/128341" style="color:red;">http://yongsky.javaeye.com/blog/128341</a>&nbsp;
          发表时间: 2007年09月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          马上要找工作了,所以的把原来的重要的课程再回顾一下,我重要复习的是数据结构,在网上下了&lt;&lt;Java数据结构和算法>>这本书,准备用3个星期看完.看到不如做到,做到不如写到,我的记忆力不是很好,为了看了之后不会忘记,我把学习的体会和程序代码贴上来,以供以后参考.<br />(1)冒泡排序<br /><pre name="code" class="java">package ChapterOne;

public class Bubble {

	public static void main(String[] args) {
		Bubble b = new Bubble();
		for(int i = 0;i &lt; arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		b.bubble();
		for(int i = 0;i &lt; arr.length;i++){
			System.out.print(arr[i]+" ");
		}
                  System.exit(0);
	}
	/**
	 * 冒泡排序
	 */
	public void bubble(){
		for(int i = arr.length-1;i > 1;i--){
			for(int j = 0;j &lt; i;j++){
				if(arr[j] > arr[j+1])
					swap(j,j+1);
			}
		}
	}
	/**
	 * 交换数组中的两个数
	 * @param one
	 * @param two
	 */
	public void swap(int one,int two){
		long temp = arr[one];
		arr[one] = arr[two];
		arr[two] = temp;
	}
	
	static long arr[] = new long[20];
	/**
	 * 随机初始化一个长度为20的数组
	 */
	static{
		for(int i = 0;i &lt; arr.length;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
}</pre><br /><br />(2)选择排序<br /><pre name="code" class="java">package ChapterOne;

public class SelectSort {
	/**
	 * 初始化一个长度为size的数组
	 * @param size
	 */
	public SelectSort(int size){
		arr = new long[size];
		for(int i = 0;i &lt; size;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
	/**
	 * 选择排序
	 * @return
	 */
	public long[] sort(){
		for(int i = 0;i &lt; arr.length;i++){
			int minIndex = findMin(i);
			long min = arr[minIndex];
			//子数组中的所有的数后移一个位置
			for(int j = minIndex;j > 0;j--)
				arr[j] = arr[j-1];
			//把最小的数插入到最前端
			arr[0] = min;
		}
		return arr;
	}
	/**
	 * 查找一start为起始位置到数组最后位置这段子数组中最小的一个数的位置
	 * @param start
	 * @return
	 */
	public int findMin(int start){
		int min = start;
		for(int i = min;i &lt; arr.length;i++)
			if(arr[min] > arr[i])
				min = i;
		return min;
	}
	
	public static void main(String[] args) {
		SelectSort ss = new SelectSort(10);
		ss.print();
		long oa[] = ss.sort();
		for(int i = 0;i &lt; oa.length;i++)
			System.out.print(oa[i]+" ");
		System.out.println();
		System.exit(0);
	}
	public void print(){
		for(int i = 0;i &lt; arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
	}
	
	long arr[];
}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/128341#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Sep 2007 21:49:55 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/128341</link>
        <guid>http://yongsky.javaeye.com/blog/128341</guid>
      </item>
      <item>
        <title>两分钟让你明白什么是ERP</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/115918" style="color:red;">http://yongsky.javaeye.com/blog/115918</a>&nbsp;
          发表时间: 2007年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          把专业的问题通俗化—— <br /><br />　　ERP(Enterprise Resource Planning)企业资源计划系统，是指建立在信息技术基础上，以系统化的管理思想，为企业决策层及员工提供决策运行手段的管理平台。 <br /><br />　　一天中午，丈夫在外给家里打电话：“亲爱的老婆，晚上我想带几个同事回家吃饭可以吗？” (订货意向) <br /><br />　　妻子：“当然可以，来几个人，几点来，想吃什么菜？” <br /><br />　　丈夫：“6个人，我们7点左右回来，准备些酒、烤鸭、番茄炒蛋、凉菜、蛋花汤……。你看可吗？” (商务沟通) <br /><br />　　妻子：“没问题，我会准备好的。” (订单确认) <br /><br />　　妻子记录下需要做的菜单 (MPS计划) ，具体要准备的东西：鸭、酒、番茄、鸡蛋、调料…… (BOM物料清单) ，发现需要：1只鸭蛋，5瓶酒，4个鸡蛋…… (BOM展开) ，炒蛋需要6个鸡蛋，蛋花汤需要4个鸡蛋 (共用物料) 。 <br /><br />　　打开冰箱一看 (库房) ，只剩下2个鸡蛋 (缺料) 。 <br /><br />　　来到自由市场，妻子：“请问鸡蛋怎么卖？” (采购询价) <br /><br />　　小贩：“1个1元，半打5元，1打9.5元。” <br /><br />　　妻子：“我只需要8个，但这次买1打。” (经济批量采购) <br /><br />　　妻子：“这有一个坏的，换一个。” (验收、退料、换料) <br /><br />　　回到家中，准备洗采、切菜、炒菜…… (工艺线路) ，厨房中有燃气灶、微波炉、电饭煲…… (工作中心) 。 <br /><br />　　妻子发现拨鸭毛最费时间 (瓶颈工序，关键工艺路线) ，用微波炉自己做烤鸭可能来不及 (产能不足) ，于是阅览室在楼下的餐厅里买现成的 (产品委外) 。 <br /><br />　　下午4点，接到儿子的电话：“妈妈，晚上几个同学想来家里吃饭，你帮忙准备一下。” (紧急订单) <br /><br />　　“好的，你们想吃什么，爸爸晚上也有客人，你愿意和他们一起吃吗？” <br /><br />　　“菜你看着办吧，但一定要有番茄炒鸡蛋，我们不和大人一起吃，6：30左右回来。” (不能并单处理) <br /><br />　　“好的，肯定让你们满意。” (订单确定) <br /><br />　　“鸡蛋又不购了，打电话叫小店送来。” (紧急采购) <br /><br />　　6：30，一切准备就绪，可烤鸭还没送来，急忙打电话询问：“我是李太，怎么订的烤鸭还不送来？” (采购委外单跟催) <br /><br />　　“不好意思，送货的人已经走了，可能是堵车吧，马上就会到的。” <br /><br />　　门铃响了。 <br /><br />　　“李太太，这是您要的烤鸭。请在单上签一个字。” (验收、入库、转应付账款) <br /><br />　　6：45，女儿的电话：“妈妈，我想现在带几个朋友回家吃饭可以吗？” (呵呵，又是紧急订购意向，要求现货) <br /><br />　　“不行呀，女儿，今天妈已经需要准备两桌饭了，时间实在是来不及，真的非常抱歉，下次早点说，一定给你们准备好。” (哈哈，这就是ERP的使用局限，要有稳定的外部环境，要有一个起码的提前期) 。 <br /><br />　　…… …… <br /><br />　　送走了所有客人，疲惫的妻子坐在沙发上对丈夫说：“亲爱的，现在咱们家请客的频率非常高，应该要买些厨房用品了 (设备采购) ，最好能再雇个小保姆 (连人力资源系统也有缺口了) 。 <br /><br />　　丈夫：“家里你做主，需要什么你就去办吧。” (通过审核) <br /><br />　　妻子：“还有，最近家里花销太大，用你的私房钱来补贴一下，好吗？” (最后就是应收货款的催要) <br /><br />　　现在还有人不理解ERP吗？记住，每一个合格的家庭主妇都是生产厂长的有力竞争者。
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/115918#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 23 Aug 2007 22:03:46 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/115918</link>
        <guid>http://yongsky.javaeye.com/blog/115918</guid>
      </item>
      <item>
        <title> Ajax并不神秘[转]</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/115390" style="color:red;">http://yongsky.javaeye.com/blog/115390</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Ajax控件和类库现在真的太多了，不知不觉中增加了Ajax的神秘性和复杂性，看到版内很多人为此费解和伤神，决定发此贴谈谈本人对Ajax的观点，希望能让大家对Ajax有一个本质的认识。<br /><br />观点一：Ajax和服务器端技术毫不相关 严格的说，与传统web开发相比，Ajax是完完全全的客户端技术。由于很多控件封装了客户端和服务器端的通信过程，因此很多问题也因通信而起。事实上，不论何种Ajax技术，服务器端都是返回的一个纯文本流，再由客户端来处理这个文本。这段文本可以是xml格式，也可以是一个Html片段，也可以是一段JavaScript脚本，或者仅是一个字符串。服务器端仅仅是作为一个数据接口，客户端使用XMLHttpRequest对象来请求这个页面，服务器端在页面内写入结果文本，这个过程和普通的web开发没有任何区别。所不同的只是，客户端在异步获取结果后，不是直接显示在页面，而是由客户端的Javascript脚本处理后再显示在页面。至于各种控件所谓的能返回DataSet对象，Date对象，或者其他的数据类型，都是封装了这个处理过程的结果。<br /><br />观点二：DOM模型是Ajax最本质的技术 之所以没有把XMLHttpRequest列为最本质的技术，因为本人觉得它实在是太简单了，它只是可以让浏览器在后台请求一个页面，并将其内容交给JavaScript处理。真正的核心应该是：DOM模型，即文档对象模型。在DOM模型里，Html标记都被认为是一个对象，例如：div对象，table对象等等。DOM模型就规定了这些对象所具有的属性、方法和事件。通过这些性质，可以对一个已经显示于浏览器的页面进行内容的修改，例如增加节点、修改节点位置，删除节点等等。而不仅仅是一个innerHTML属性这么简单，虽然这是一个很有用的属性。<br /><br />观点三：在使用Ajax控件前理解它们的实现 使用Ajax控件的确可以提高效率，但如果你空中楼阁般使用控件，那就得不偿失了。从一个控件换到另外一个控件又会有一个漫长的学习曲线。所以应该从底层了解其，况且Ajax实在不是什么高深的技术。其实任何东西的最底层其实都是简单的，但如果封装了这些底层的东西，事情会变得复杂和难以理解。以Asp.net为例，它的定制特性可以使得只要在方法前加上[ajax method]类似这样的标志就可以称为一个异步方法，相信这使得Asp.net的Ajax开发显得更加“高效”或者是“神秘”，而更多的事情则被封装了。同样记住一条，任何对服务器端的请求仅仅是返回纯文本，我们不一定要依赖于封装好的处理过程，而完全可以自己来实现。<br /><br />观点四：学好JavaScript 在大多数人看来，JavaScript总不是那么一种正规的语言，随便copy一段就碰巧能运行，学过c之类的人，一看也能看懂，而且在浏览器中常常有脚本错误提示，所以潜意识觉得总不能付之以大任。事实上，要学好Ajax，这就完全是一种错误的看法。javascript作为一种脚本语言，其语法的确不是很严格，但并不妨碍其完成诸多复杂的任务，没有JavaScript，就没有Ajax。所以本人强烈建议，学Ajax前，一定要好好研究一番JavaScript，一般来讲，如果能顺利看懂prototype框架的代码（如：prototype-1.3.1.js），你的JavaScript水平就基本过关了。同时对DOM模型也可以算有一个基本的了解。<br /><br />观点五：Ajax点缀：CSS 用JavaScript控制CSS其实很简单，基本上每个DOM对象都有一个style对象，只要把css属性里的"-"去掉，并让随后的字母变为大写就可以作为属性使用了，例如：element.style.backgroundColor="#f00";在css是：选择符 {background-color:#f00}
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/115390#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 23:47:45 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/115390</link>
        <guid>http://yongsky.javaeye.com/blog/115390</guid>
      </item>
      <item>
        <title>Javascript中最常用的55个经典技巧 </title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/113921" style="color:red;">http://yongsky.javaeye.com/blog/113921</a>&nbsp;
          发表时间: 2007年08月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <br />&lt;table border oncontextmenu=return(false)>&lt;td>no&lt;/table> 可用于Table<br /><br />2. &lt;body onselectstart="return false"> 取消选取、防止复制<br /><br />3. onpaste="return false" 不准粘贴<br /><br />4. oncopy="return false;" oncut="return false;" 防止复制<br /><br />5. &lt;link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标<br /><br />6. &lt;link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标<br /><br />7. &lt;input style="ime-mode:disabled"> 关闭输入法<br /><br />8. 永远都会带着框架 <br />&lt;script language="JavaScript">&lt;!-- <br />if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页 <br />// -->&lt;/script><br /><br />9. 防止被人frame <br />&lt;SCRIPT LANGUAGE=JAVASCRIPT>&lt;!-- <br />if (top.location != self.location)top.location=self.location; <br />// -->&lt;/SCRIPT><br /><br />10. 网页将不能被另存为 <br />&lt;noscript>&lt;*** src="/*.html>";&lt;/***>&lt;/noscript> <br /><br />11. &lt;input type=button value="/查看网页源代码 <br />onclick="window.location = "view-source:"+ "http://www.pconline.com.cn""> <br />12.删除时确认 <br />&lt;a href=""javascript :if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除&lt;/a> <br /><br />13. 取得控件的绝对位置 <br />//Javascript <br />&lt;script language="Javascript"> <br />function getIE(e){ <br />var t=e.offsetTop; <br />var l=e.offsetLeft; <br />while(e=e.offsetParent){ <br />t+=e.offsetTop; <br />l+=e.offsetLeft; <br />} <br />alert("top="+t+"/nleft="+l); <br />} <br />&lt;/script> <br />//VBScript <br />&lt;script language="VBScript">&lt;!-- <br />function getIE() <br />dim t,l,a,b <br />set a=document.all.img1 <br />t=document.all.img1.offsetTop <br />l=document.all.img1.offsetLeft <br />while a.tagName&lt;>"BODY" <br />set a = a.offsetParent <br />t=t+a.offsetTop <br />l=l+a.offsetLeft <br />wend <br />msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置" <br />end function <br />-->&lt;/script><br /><br />14. 光标是停在文本框文字的最后 <br />&lt;script language="javascript"> <br />function cc() <br />{ <br />var e = event.srcElement; <br />var r =e.createTextRange(); <br />r.moveStart("character",e.value.length); <br />r.collapse(true); <br />r.select(); <br />} <br />&lt;/script> <br />&lt;input type=text name=text1 value="123" onfocus="cc()"><br /><br />15. 判断上一页的来源 <br />javascript : <br />document.referrer<br /><br />16. 最小化、最大化、关闭窗口 <br />&lt;object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> <br />&lt;param name="Command" value="Minimize">&lt;/object> <br />&lt;object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> <br />&lt;param name="Command" value="Maximize">&lt;/object> <br />&lt;OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"> <br />&lt;PARAM NAME="Command" value="/Close">&lt;/OBJECT> <br />&lt;input type=button value="/最小化 onclick=hh1.Click()> <br />&lt;input type=button value="/blog/最大化 onclick=hh2.Click()> <br />&lt;input type=button value=关闭 onclick=hh3.Click()> <br />本例适用于IE<br /><br />17.屏蔽功能键Shift,Alt,Ctrl <br />&lt;script> <br />function look(){ <br />if(event.shiftKey) <br />alert("禁止按Shift键!"); //可以换成ALT　CTRL <br />} <br />document.onkeydown=look; <br />&lt;/script><br /><br />18. 网页不会被缓存 <br />&lt;META HTTP-EQUIV="pragma" CONTENT="no-cache"> <br />&lt;META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <br />&lt;META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> <br />或者&lt;META HTTP-EQUIV="expires" CONTENT="0"><br /><br />19.怎样让表单没有凹凸感？ <br />&lt;input type=text style="""border:1 solid #000000"> <br />或 <br />&lt;input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: <br />1 solid #000000">&lt;/textarea><br /><br />20.&lt;div>&lt;span>&&lt;layer>的区别？ <br />&lt;div>(division)用来定义大段的页面元素，会产生转行 <br />&lt;span>用来定义同一行内的元素，跟&lt;div>的唯一区别是不产生转行 <br />&lt;layer>是ns的标记，ie不支持，相当于&lt;div><br /><br />21.让弹出窗口总是在最上面: <br />&lt;body onblur="this.focus();"><br /><br />22.不要滚动条? <br />让竖条没有: <br />&lt;body style="overflow:scroll;overflow-y:hidden"> <br />&lt;/body> <br />让横条没有: <br />&lt;body style="overflow:scroll;overflow-x:hidden"> <br />&lt;/body> <br />两个都去掉？更简单了 <br />&lt;body scroll="no"> <br />&lt;/body> <br /><br />23.怎样去掉图片链接点击后，图片周围的虚线？ <br />&lt;a href="#" onFocus="this.blur()">&lt;img src="/logo.jpg" border=0>&lt;/a><br /><br />24.电子邮件处理提交表单 <br />&lt;form name="form1" method="post" action=mailto:****@***.com <br />enctype="text/plain"> <br />&lt;input type=submit> <br />&lt;/form><br /><br />25.在打开的子窗口刷新父窗口的代码里如何写？ <br />window.opener.location.reload()<br /><br />26.如何设定打开页面的大小 <br />&lt;body onload="top.resizeTo(300,200);"> <br />打开页面的位置&lt;body onload="top.moveBy(300,200);"><br /><br />27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动 <br />&lt;STYLE> <br />body <br />{background-image:url(/logo.gif); background-repeat:no-repeat; <br />background-position:center;background-attachment: fixed} <br />&lt;/STYLE> <br /><br />28. 检查一段字符串是否全由数字组成 <br />&lt;script language="Javascript">&lt;!-- <br />function checkNum(str){return str.match(//D/)==null} <br />alert(checkNum("1232142141")) <br />alert(checkNum("123214214a1")) <br />// -->&lt;/script><br /><br />29. 获得一个窗口的大小 <br />document.body.clientWidth; document.body.clientHeight<br /><br />30. 怎么判断是否是字符 <br />if (/[^/x00-/xff]/g.test(s)) alert("含有汉字"); <br />else alert("全是字符");<br /><br />31.TEXTAREA自适应文字行数的多少 <br />&lt;textarea rows=1 name=s1 cols=27 onpropertychange <br />="this.style.posHeight=this.scrollHeight"> <br />&lt;/textarea><br /><br />32. 日期减去天数等于第二个日期 <br />&lt;script language=Javascript> <br />function cc(dd,dadd) <br />{ <br />//可以加上错误处理 <br />var a = new Date(dd) <br />a = a.valueOf() <br />a = a - dadd * 24 * 60 * 60 * 1000 <br />a = new Date(a) <br />alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日") <br />} <br />cc("12/23/2002",2) <br />&lt;/script><br /><br />33. 选择了哪一个Radio <br />&lt;HTML>&lt;script language="vbscript"> <br />function checkme() <br />for each ob in radio1 <br />if ob.checked then <br />window.alert ob.value <br />next <br />end function <br />&lt;/script>&lt;BODY> <br />&lt;INPUT name="radio1" type="radio" value="/style" checked>Style <br />&lt;INPUT name="radio1" type="radio" value="/blog/barcode">Barcode <br />&lt;INPUT type="button" value="check" onclick="checkme()"> <br />&lt;/BODY>&lt;/HTML><br /><br />34.脚本永不出错 <br />&lt;SCRIPT LANGUAGE="JavaScript"> <br />&lt;!-- Hide <br />function killErrors() { <br />return true; <br />} <br />window.onerror = killErrors; <br />// --> <br />&lt;/SCRIPT><br /><br />35.ENTER键可以让光标移到下一个输入框 <br />&lt;input onkeydown="if(event.keyCode==13)event.keyCode=9"><br /><br />36. 检测某个网站的链接速度： <br />把如下代码加入&lt;body>区域中: <br />&lt;script language=Javascript> <br />tim=1 <br />setInterval("tim++",100) <br />b=1 <br />var autourl=new Array() <br />autourl[1]=1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>www.njcatv.net" <br />autourl[2]="javacool.3322.net" <br />autourl[3]=1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>www.sina.com.cn" <br />autourl[4]="www.nuaa.edu.cn" <br />autourl[5]=1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>www.cctv.com" <br />function butt(){ <br />***("&lt;form name=autof>") <br />for(var i=1;i&lt;autourl.length;i++) <br />***("&lt;input type=text name=txt"+i+" size=10 value="/测试中……> =》&lt;input type=text <br />name=url"+i+" size=40> =》&lt;input type=button value="/blog/GO <br />onclick=window.open(this.form.url"+i+".value)>&lt;br>") <br />***("&lt;input type=submit value=刷新>&lt;/form>") <br />} <br />butt() <br />function auto(url){ <br />document.forms[0]["url"+b].value=url <br />if(tim>200) <br />{document.forms[0]["txt"+b].value="/链接超时"} <br />else <br />{document.forms[0]["txt"+b].value="/blog/时间"+tim/10+"秒"} <br />b++ <br />} <br />function run(){for(var i=1;i&lt;autourl.length;i++)***("&lt;img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 <br />onerror=auto("http://"+autourl+"")>")} <br />run()&lt;/script><br /><br />37. 各种样式的光标 <br />auto ：标准光标 <br />default ：标准箭头 <br />hand ：手形光标 <br />wait ：等待光标 <br />text ：I形光标 <br />vertical-text ：水平I形光标 <br />no-drop ：不可拖动光标 <br />not-allowed ：无效光标 <br />help ：?帮助光标 <br />all-scroll ：三角方向标 <br />move ：移动标 <br />crosshair ：十字标 <br />e-resize <br />n-resize <br />nw-resize <br />w-resize <br />s-resize <br />se-resize <br />sw-resize<br /><br />38.页面进入和退出的特效 <br />进入页面&lt;meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)"> <br />推出页面&lt;meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> <br />这个是页面被载入和调出时的一些特效。duration表示特效的持续时间，以秒为单位。transition表示使用哪种特效，取值为1-23: <br />　　0 矩形缩小 <br />　　1 矩形扩大 <br />　　2 圆形缩小 <br />　　3 圆形扩大 <br />　　4 下到上刷新 <br />　　5 上到下刷新 <br />　　6 左到右刷新 <br />　　7 右到左刷新 <br />　　8 竖百叶窗 <br />　　9 横百叶窗 <br />　　10 错位横百叶窗 <br />　　11 错位竖百叶窗 <br />　　12 点扩散 <br />　　13 左右到中间刷新 <br />　　14 中间到左右刷新 <br />　　15 中间到上下 <br />　　16 上下到中间 <br />　　17 右下到左上 <br />　　18 右上到左下 <br />　　19 左上到右下 <br />　　20 左下到右上 <br />　　21 横条 <br />　　22 竖条 <br />　　23 以上22种随机选择一种<br /><br />39.在规定时间内跳转 <br />&lt;META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com"> <br /><br />40.网页是否被检索 <br />&lt;meta name="ROBOTS" content="属性值"> <br />　　其中属性值有以下一些: <br />　　属性值为"all": 文件将被检索，且页上链接可被查询； <br />　　属性值为"none": 文件不被检索，而且不查询页上的链接； <br />　　属性值为"index": 文件将被检索； <br />　　属性值为"follow": 查询页上的链接； <br />　　属性值为"noindex": 文件不检索，但可被查询链接； <br />　　属性值为"nofollow": 文件不被检索，但可查询页上的链接。<br /><br />41、email地址的分割 <br />把如下代码加入&lt;body>区域中 <br />&lt;a href="mailto:webmaster@sina.com">webmaster@sina.com&lt;/a><br /><br />42、流动边框效果的表格 <br />把如下代码加入&lt;body>区域中 <br />&lt;SCRIPT> <br />l=Array(6,7,8,9,'a','b','b','c','d','e','f') <br />Nx=5;Ny=35 <br />t="&lt;table border=0 cellspacing=0 cellpadding=0 height="+((Nx+2)*16)+">&lt;tr>" <br />for(x=Nx;x&lt;Nx+Ny;x++) <br />t+="&lt;td width=16 id=a_mo"+x+">　&lt;/td>" <br />t+="&lt;/tr>&lt;tr>&lt;td width=10 id=a_mo"+(Nx-1)+">　&lt;/td>&lt;td colspan="+(Ny-2)+" rowspan="+(Nx)+">　&lt;/td>&lt;td width=16 id=a_mo"+(Nx+Ny)+">&lt;/td>&lt;/tr>" <br />for(x=2;x&lt;=Nx;x++) <br />t+="&lt;tr>&lt;td width=16 id=a_mo"+(Nx-x)+">　&lt;/td>&lt;td width=16 id=a_mo"+(Ny+Nx+x-1)+">　&lt;/td>&lt;/tr>" <br />t+="&lt;tr>" <br />for(x=Ny;x>0;x--) <br />t+="&lt;td width=16 id=a_mo"+(x+Nx*2+Ny-1)+">　&lt;/td>" <br />***(t+"&lt;/tr>&lt;/table>") <br />var N=Nx*2+Ny*2 <br />function f1(y){ <br />for(i=0;i&lt;N;i++){ <br />c=(i+y)%20;if(c>10)c=20-c <br />document.all["a_mo"+(i)].bgColor=""""#0000"+l[c]+l[c]+"'"} <br />y++ <br />setTimeout('f1('+y+')','1')} <br />f1(1) <br />&lt;/SCRIPT><br /><br />43、JavaScript主页弹出窗口技巧 <br />窗口中间弹出 <br />&lt;script> <br />window.open("http://www.cctv.com","","width=400,height=240,top="+(screen.availHeight-240)/2+",left="+(screen.availWidth-400)/2); <br />&lt;/script> <br />============ <br />&lt;html> <br />&lt;head> <br />&lt;script language="LiveScript"> <br />function WinOpen() { <br />msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no"); <br />msg.***("&lt;HEAD>&lt;TITLE>哈 罗!&lt;/TITLE>&lt;/HEAD>"); <br />msg.***("&lt;CENTER>&lt;H1>酷 毙 了!&lt;/H1>&lt;h2>这 是&lt;B>JavaScript&lt;/B>所 开 的 视 窗!&lt;/h2>&lt;/CENTER>"); <br />} <br />&lt;/script> <br />&lt;/head> <br />&lt;body> <br />&lt;form> <br />&lt;input type="button" name="Button1" value="Push me" onclick="WinOpen()"> <br />&lt;/form> <br />&lt;/body> <br />&lt;/html> <br />============== <br />一、在下面的代码中，你只要单击打开一个窗口，即可链接到赛迪网。而当你想关闭时，只要单击一下即可关闭刚才打开的窗口。 <br />　　代码如下： <br />　　&lt;SCRIPT language="JavaScript"> <br />　　&lt;！-- <br />　　function openclk() { <br />　　another=open('1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>http://www.ccidnet.com'，'NewWindow'); <br />　　} <br />　　function closeclk() { <br />　　another.close(); <br />　　} <br />　　//--> <br />　　&lt;/SCRIPT> <br />　　&lt;FORM> <br />　　&lt;INPUT TYPE="BUTTON" NAME="open" value="/打开一个窗口" onClick="openclk()"> <br />　　&lt;BR> <br />　　&lt;INPUT TYPE="BUTTON" NAME="close" value="/blog/关闭这个窗口" onClick="closeclk()"> <br />　　&lt;/FORM> <br />　　二、上面的代码也太静了，为何不来点动感呢？如果能给页面来个降落效果那该多好啊！ <br />　　代码如下： <br />　　&lt;script> <br />　　function drop(n) { <br />　　if(self.moveBy){ <br />　　self.moveBy (0，-900); <br />　　for(i = n; i > 0; i--){ <br />　　self.moveBy(0，3); <br />　　} <br />　　for(j = 8; j > 0; j--){ <br />　　self.moveBy(0，j); <br />　　self.moveBy(j，0); <br />　　self.moveBy(0，-j); <br />　　self.moveBy(-j，0); <br />　　} <br />　　} <br />　　} <br />　　&lt;/script> <br />　　&lt;body onLoad="drop(300)"> <br />　　三、讨厌很多网站总是按照默认窗口打开，如果你能随心所欲控制打开的窗口那该多好。 <br />　　代码如下: <br />　　&lt;SCRIPT LANGUAGE="JavaScript"> <br />　　&lt;！-- Begin <br />　　function popupPage(l， t， w， h) { <br />　　var windowprops = "location=no，scrollbars=no，menubars=no，toolbars=no，resizable=yes" + <br />　　"，left=" + l + "，top=" + t + "，width=" + w + "，height=" + h; <br />　　var URL = "http://www.80cn.com"; <br />　　popup = window.open(URL，"MenuPopup"，windowprops); <br />　　} <br />　　// End --> <br />　　&lt;/script> <br />　　&lt;table> <br />　　&lt;tr> <br />　　&lt;td> <br />　　&lt;form name=popupform> <br />　　&lt;pre> <br />　　打开页面的参数&lt;br> <br />　　离开左边的距离: &lt;input type=text name=left size=2 maxlength=4> pixels <br />　　离开右边的距离: &lt;input type=text name=top size=2 maxlength=4> pixels <br />　　窗口的宽度: &lt;input type=text name=width size=2 maxlength=4> pixels <br />　　窗口的高度: &lt;input type=text name=height size=2 maxlength=4> pixels <br />　　&lt;/pre> <br />　　&lt;center> <br />　　&lt;input type=button value="打开这个窗口！" onClick="popupPage(this.form.left.value， this.form.top.value， this.form.width.value， <br />this.form.height.value)"> <br />　　&lt;/center> <br />　　&lt;/form> <br />　　&lt;/td> <br />　　&lt;/tr> <br />　　&lt;/table>你只要在相对应的对话框中输入一个数值即可，将要打开的页面的窗口控制得很好。 <br /><br />44、页面的打开移动 <br />把如下代码加入&lt;body>区域中 <br />&lt;SCRIPT LANGUAGE="JavaScript"> <br />&lt;!-- Begin <br />for (t = 2; t > 0; t--) { <br />for (x = 20; x > 0; x--) { <br />for (y = 10; y > 0; y--) { <br />parent.moveBy(0,-x); <br />} <br />} <br />for (x = 20; x > 0; x--) { <br />for (y = 10; y > 0; y--) { <br />parent.moveBy(0,x); <br />} <br />} <br />for (x = 20; x > 0; x--) { <br />for (y = 10; y > 0; y--) { <br />parent.moveBy(x,0); <br />} <br />} <br />for (x = 20; x > 0; x--) { <br />for (y = 10; y > 0; y--) { <br />parent.moveBy(-x,0); <br />} <br />} <br />} <br />//--> <br />// End --> <br />&lt;/script><br /><br />45、显示个人客户端机器的日期和时间 <br />&lt;script language="LiveScript"> <br />&lt;!-- Hiding <br />today = new Date() <br />***("现 在 时 间 是： ",today.getHours(),":",today.getMinutes()) <br />***("&lt;br>今 天 日 期 为： ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear()); <br />// end hiding contents --> <br />&lt;/script><br /><br />46、自动的为你每次产生最後修改的日期了： <br />&lt;html> <br />&lt;body> <br />This is a simple HTML- page. <br />&lt;br> <br />Last changes: <br />&lt;script language="LiveScript"> <br />&lt;!-- hide script from old browsers <br />***(document.lastModified) <br />// end hiding contents --> <br />&lt;/script> <br />&lt;/body> <br />&lt;/html><br /><br />47、不能为空和邮件地址的约束： <br />&lt;html> <br />&lt;head> <br />&lt;script language="JavaScript"> <br />&lt;!-- Hide <br />function test1(form) { <br />if (form.text1.value == "") <br />alert("您 没 写 上 任 何 东 西， 请 再 输 入 一 次 !") <br />else { <br />alert("嗨 "+form.text1.value+"! 您 已 输 入 完 成 !"); <br />} <br />} <br />function test2(form) { <br />if (form.text2.value == "" || <br />form.text2.value.indexOf('@', 0) == -1) <br />alert("这 不 是 正 确 的 e-mail address! 请 再 输 入 一 次 !"); <br />else alert("您 已 输 入 完 成 !"); <br />} <br />// --> <br />&lt;/script> <br />&lt;/head> <br />&lt;body> <br />&lt;form name="first"> <br />Enter your name:&lt;br> <br />&lt;input type="text" name="text1"> <br />&lt;input type="button" name="button1" value="输 入 测 试" onClick="test1(this.form)"> <br />&lt;P> <br />Enter your e-mail address:&lt;br> <br />&lt;input type="text" name="text2"> <br />&lt;input type="button" name="button2" value="输 入 测 试" onClick="test2(this.form)"> <br />&lt;/body><br /><br />48、跑马灯 <br />&lt;html> <br />&lt;head> <br />&lt;script language="JavaScript"> <br />&lt;!-- Hide <br />var scrtxt="怎麽样 ! 很酷吧 ! 您也可以试试."+"Here goes your message the visitors to your <br />page will "+"look at for hours in pure fascination..."; <br />var lentxt=scrtxt.length; <br />var width=100; <br />var pos=1-width; <br />function scroll() { <br />pos++; <br />var scroller=""; <br />if (pos==lentxt) { <br />pos=1-width; <br />} <br />if (pos&lt;0) { <br />for (var i=1; i&lt;=Math.abs(pos); i++) { <br />scroller=scroller+" ";} <br />scroller=scroller+scrtxt.substring(0,width-i+1); <br />} <br />else { <br />scroller=scroller+scrtxt.substring(pos,width+pos); <br />} <br />window.status = scroller; <br />setTimeout("scroll()",150); <br />} <br />//--> <br />&lt;/script> <br />&lt;/head> <br />&lt;body onLoad="scroll();return true;"> <br />这里可显示您的网页 ! <br />&lt;/body> <br />&lt;/html><br /><br />49、在网页中用按钮来控制前页，后页和主页的显示。 <br />&lt;html> <br />&lt;body> <br />&lt;FORM NAME="buttonbar"> <br />&lt;INPUT TYPE="button" VALUE="Back" onClick="history.back()"> <br />&lt;INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'"> <br />&lt;INPUT TYPE="button" VALUE="Next" onCLick="history.forward()"> <br />&lt;/FORM> <br />&lt;/body> <br />&lt;/html> <br />50、查看某网址的源代码 <br />把如下代码加入&lt;body>区域中 <br />&lt;SCRIPT> <br />function add() <br />{ <br />var ress=document.forms[0].luxiaoqing.value <br />window.location="view-source:"+ress; <br />} <br />&lt;/SCRIPT> <br />输入要查看源代码的URL地址: <br />&lt;FORM>&lt;input type="text" name="luxiaoqing" size=40 value="http://">&lt;/FORM> <br />&lt;FORM>&lt;br> <br />&lt;INPUT type="button" value="查看源代码" onClick=add()> <br />&lt;/FORM><br /><br />51、title显示日期 <br />把如下代码加入&lt;body>区域中: <br />&lt;script language="JavaScript1.2"> <br />&lt;!--hide <br />var isnMonth = new <br />Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"); <br />var isnDay = new <br />Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"); <br />today = new Date () ; <br />Year=today.getYear(); <br />Date=today.getDate(); <br />if (document.all) <br />document.title="今天是: "+Year+"年"+isnMonth[today.getMonth()]+Date+"日"+isnDay[today.getDay()] <br />//--hide--> <br />&lt;/script><br /><br />52、显示所有链接 <br />把如下代码加入&lt;body>区域中 <br />&lt;script language="JavaScript1.2"> <br />&lt;!-- <br />function extractlinks(){ <br />var links=document.all.tags("A") <br />var total=links.length <br />var win2=window.open("","","menubar,scrollbars,toolbar") <br />win2.***("&lt;font size='2'>一共有"+total+"个连接&lt;/font>&lt;br>") <br />for (i=0;i&lt;total;i++){ <br />win2.***("&lt;font size='2'>"+links[i].outerHTML+"&lt;/font>&lt;br>") <br />} <br />} <br />//--> <br />&lt;/script> <br />&lt;input type="button" onClick="extractlinks()" value="显示所有的连接"><br /><br />53、回车键换行 <br />把如下代码加入&lt;body>区域中 <br />&lt;script type="text/javascript"> <br />function handleEnter (field, event) { <br />var keyCode = event.keyCode ? event.keyCode : event.which ? <br />event.which : event.charCode; <br />if (keyCode == 13) { <br />var i; <br />for (i = 0; i &lt; field.form.elements.length; i++) <br />if (field == field.form.elements[i]) <br />break; <br />i = (i + 1) % field.form.elements.length; <br />field.form.elements[i].focus(); <br />return false; <br />} <br />else <br />return true; <br />} <br />&lt;/script> <br />&lt;form> <br />&lt;input type="text" onkeypress="return handleEnter(this, event)">&lt;br> <br />&lt;input type="text" onkeypress="return handleEnter(this, event)">&lt;br> <br />&lt;textarea>回车换行<br /><br />54、确认后提交 <br />把如下代码加入&lt;body>区域中 <br />&lt;SCRIPT LANGUAGE="JavaScript"> <br />&lt;!-- <br />function msg(){ <br />if (confirm("你确认要提交嘛！")) <br />document.lnman.submit() <br />} <br />//--> <br />&lt;/SCRIPT> <br />&lt;form name="lnman" method="post" action=""> <br />&lt;p> <br />&lt;input type="text" name="textfield" value="确认后提交"> <br />&lt;/p> <br />&lt;p> <br />&lt;input type="button" name="Submit" value="提交" onclick="msg();"> <br />&lt;/p> <br />&lt;/form><br /><br />55、改变表格的内容 <br />把如下代码加入&lt;body>区域中 <br />&lt;script ***script> <br />var arr=new Array() <br />arr[0]="一一一一一"; <br />arr[1]="二二二二二"; <br />arr[2]="三三三三三"; <br />&lt;/script> <br />&lt;select onchange="zz.cells[this.selectedIndex].innerHTML=arr[this.selectedIndex]"> <br />&lt;option value=a>改变第一格&lt;/option> <br />&lt;option value=a>改变第二格&lt;/option> <br />&lt;option value=a>改变第三格&lt;/option> <br />&lt;/select> <br />&lt;table id=zz border=1> <br />&lt;tr height=20> <br />&lt;td width=150>第一格&lt;/td> <br />&lt;td width=150>第二格&lt;/td> <br />&lt;td width=150>第三格&lt;/td> <br />&lt;/tr> <br />&lt;/table>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/113921#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 18 Aug 2007 21:16:57 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/113921</link>
        <guid>http://yongsky.javaeye.com/blog/113921</guid>
      </item>
      <item>
        <title>JS+CSS+HTML打造WEB计算器</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/112920" style="color:red;">http://yongsky.javaeye.com/blog/112920</a>&nbsp;
          发表时间: 2007年08月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="MsoNormal" style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由于时间关系</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">好久没有在</span><span lang="EN-US">JAVAEYE</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发贴子了</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">现在一开始准备写点东西的时候</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">感觉到自己的写作水平好差</span><span lang="EN-US">,什么都写不出,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但是还是要坚持写下去</span><span lang="EN-US">.</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">暑假这段时间真忙</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根本没有时间做别的事</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从早到晚一直埋头写程序</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这段时间也让我理解到做程序员原来是这样的艰辛</span><span lang="EN-US">!</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">现在刚好写写东西放松下</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">呵呵</span><span lang="EN-US">~~</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 直接写我要写的吧.</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在财务管理系统中经常要多财务数据进行统计计算</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以系统应为用户提供方便的计算工具</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">具体需求包括对数据进行统计计算外还包括取数</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把文本里面的数据取到计算器</span><span lang="EN-US">),</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">送数（把计算的结果写回到文本中）</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">精确度调整等</span><span lang="EN-US">.</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我做的已经基本实现了以上功能</span><span lang="EN-US">. </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面如下</span><span lang="EN-US">:</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://yongsky.javaeye.com/upload/picture/pic/4807/0b9f1bec-1b7f-4869-8996-7faf4379c57e.bmp" alt="" /></span></span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">整个计算器在一个层里面</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用户可以点击右上角关闭图标隐藏这个层</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">点击</span><span lang="EN-US">open</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">按钮显示</span><span lang="EN-US">.</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另外用户还可以拖动这个层</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">随便放置它的位置</span><span lang="EN-US">.</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">右边的划块</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">借用</span><span lang="EN-US">yaho</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用于调整计算的精度</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最多可以保留三位小数</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果需要更多的小数位</span><span lang="EN-US">,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不选中左上角的</span><span lang="EN-US">CheckBox,</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">即可</span><span lang="EN-US">.</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/112920#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 16 Aug 2007 09:55:27 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/112920</link>
        <guid>http://yongsky.javaeye.com/blog/112920</guid>
      </item>
      <item>
        <title>胡立阳名言</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/109427" style="color:red;">http://yongsky.javaeye.com/blog/109427</a>&nbsp;
          发表时间: 2007年08月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: 11pt">1.不要听“亲朋好友”的话，他们只会让你成为“平凡人”。<br /><br />2.不要只会“用功读书”，重要的是“要读对书”。<br /><br />3．不要只是“努力工作”，重要的是“做对工作”。<br /><br />4.不要只是结交“志趣相投”的朋友，否则你永远只看到“一半”的世界。<br /><br />5.不要只是“安分守己”等待升迁，要像下跳棋一样想办法“一步登天”。<br /><br />6.不要只是“准备好了等机会”，主动“制造机会”才能捷足先登。<br /><br />7.不要以为“钱不会从天上掉下來”，只是你必须“站对地方”接。<br /><br />8.不要只会“正面思考”，要“逆向思考”，“不正常”的人才能出人头地。<br /><br />9.在股市中，别人因为紧张而犯的每一个错误，都是在辛辛苦苦的为您累计财富。</span>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/109427#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 06 Aug 2007 15:44:12 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/109427</link>
        <guid>http://yongsky.javaeye.com/blog/109427</guid>
      </item>
      <item>
        <title>源码资源站大全</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/104136" style="color:red;">http://yongsky.javaeye.com/blog/104136</a>&nbsp;
          发表时间: 2007年07月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://www.mstong.net/" target="_blank">http://www.mstong.net/</a> <br />php文本代码站点，收集了大量的PHP文本代码，PHP文本代码大部分提供在线演示；同时也提供了一部分ASP、JSP、CGI代码下载。 <br /><br />http://www.downcode.com <br />中国源码下载站--提供大量ASP、CGI、PHP、JSP、.NET、Java特效等建站源码,及各种软件的下载破解应用! <br /><br />http://www.puterkey.com <br />欢乐家庭网，主要作品有PKYDOWN文本下载系统、PKY文本文章系统等，是一个服务态度很好的一个站点。 <br /><br />http://www.iphp.org/ <br />我爱PHP网，一个全部是文本PHP代码的下载站，里面的代码都是很不错，只是更新速度太慢。 <br /><br />http://www.chinaz.com <br />后起之秀，都是经过整理的源码，部分有演示。 <br /><br />http://www.k666.com <br />这个不用我说了吧，号称国内最大的源码下载站，但是源码杂而乱，废品多多，都没有演示，限制了它的发展。 <br /><br />http://www.ddown.com <br />代码下载基地，有大量的PHP，ASP代码下载，更新速度比较慢，大部分代码没有提供演示。 <br /><br />http://www.cncode.com/ <br />刚办起来的时候我很看好，有一段时间基本不更新了，让我很失望。近来好像又开始更新，速度也比较快 <br /><br />http://www.asp300.com/ <br />没有人不骂它的，一些狗不理的代码也要来卖钱！不过财大气粗，有许多商业程序，花钱也值！ <br /><br />http://www.mycodes.net/ <br />经过一段时间的调整，现在的源码之家已开始重新更新，速度也比较快。 <br /><br /><br />http://www.china-code.net/ <br />东西比较多 商业的也多 现在免费了 不错 支持 <br /><br /><br />http://www.aspsky.net <br />动网先锋，提供了一个动网论坛代码，以ASP代码为主。 <br /><br />http://www.codechina.net <br />代码中国网，提供大量的代码下载，不过都要注册为本站会员才能够提供下载。 <br /><br />http://www.downm.com <br />http://down.89dns.net/ <br />阳光下载，近来人气比较旺的一个代码下载站点，有个不足，就是打开的速度有点慢，或许是人多的原因吧 <br /><br />http://www.xxsky.com/ <br />信心网络工作室,的也挺早,库存代码也多,现在不过好象有些迷失自己了,逐渐的被网友所遗忘 <br /><br />http://www.ftpshow.com <br />华迅鲲翔 ,后起之秀,靠做论坛起家做然后做下载的,商业的东西很多,但是介绍少,现在库存很少 <br /><br />http://2002.buyionline.net <br />提供PHP代码下载的一个站点，里面的东西大部分都能够下载，代码不错，更新速度不快。 <br /><br /><br /><br />http://free.pixel2001.com/onegreen/data/pageedit-13.htm <br />绿色软件站，页面全部以绿色为主，收集的都是一些绿色软件及代码，代码不多，是一个不错的站点，我比较喜欢。 <br /><br />http://www.aspdown.com/index.asp <br />靠提供商业的东西火了一段时间,然后开始不成熟的收费,使网站慢慢的往下走 <br /><br />http://www.iwind.org <br />伊风下载站，主要作品有伊风下载、伊风新闻、留言。 <br /><br />http://wan695.51.net/ <br />php程序员网 <br /><br />http://www.21php.com/ <br />中文PHP网 <br /><br />http://www.lm92.net/ <br />PHP入门指南网 <br /><br />http://trail.51.net/index.html <br />php之家 <br /><br />http://www.phome.net/index.htm <br />php帝国 <br /><br />http://phpower.dns0755.net/default.php <br />PHP源动力网 <br /><br />http://mybamboo.51.net/ <br />PHP班竹园 <br /><br />http://phpzx.51.net/ <br />中国PHP在线 <br /><br />http://www.phpe.net <br />超越PHP - Exceed PHP <br /><br />http://www.phpx.com/ <br />中国PHP联盟 <br /><br /><br />http://phpuser.com <br />国内著名的PHP网站之一 <br /><br />http://www.useself.com <br />把握时间，全站用PHP做成，交互性强得令人惊叹 <br /><br />http://materal.51.net/download/index.php <br />互联网资源站代码中心，有大量的代码下载。 <br /><br />http://hotage.myrice.com/cn/ <br />酷虫在线，提供酷虫XP留言本下载。 <br /><br />http://www.lucn.net/cgi-bin/dow/down.cgi <br />水晶软件园，提供水晶动网论坛代码下载。 <br /><br />http://c.cxc.cc/sheyi.pl <br />PHP爱好者，提供一些文本、MYSQL整站程序下载。 <br /><br />http://www.veryzone.org/?a=code <br />veryzone代码下载站点，是一个不错的代码下载站点。 <br /><br />http://www.518dns.com/down/ <br />动力在线，提供代码下载，程序不多。 <br /><br />http://down.xindexin.net/ <br />芯网下载，提供部分代码下载。 <br /><br />http://www.ylei.com/down/ <br />http://www.love1999.com <br />水怡坊下载,提供一些比较精典的代码下载，主要以数据库代码、PHP代码为主，以前我能够下载，可是近来不知道为什么老是不能下载，对我来说这个站点已失去下载的作用，向该站站长反映也没有用处。 <br /><br />http://down.witchina.net/ydm/ <br />中国智慧在线，源码下载中心，是一个不错的下载站点，大部分代码能够下载。 <br /><br />http://www.bestu.net/download/default.asp <br />寻梦设计v2.0 - 资源下载，代码不多，但是都能够下载。 <br /><br />http://bluemm.huming.com/down/ <br />蓝色伊人下载站，一个代码下载的小站。 <br /><br />http://www2.cnnn.net:811/down/list.asp?id=82 <br />才纳网络，源码下载 <br /><br />http://kissay.levillage.org/lanxia/list.php <br />蓝吻下载 - 下载系统，大家看看，我也不知道好不好。 <br /><br />http://manto.3157.org/ <br />馒头留言簿大家应该知道的吧，进去看看就知道是什么站了。 <br /><br />http://9om.com/linker/index.php?cat=2 <br />南海，大家不知道去过没有，他的站点提供了好多本站作品，比如手机号码吉凶、仿google搜索引擎、无影网页大挪移等，是个不错的站点哦。 <br /><br /><br /><br />http://www.21tx.com/src/php/ <br />天新网，提供代码下载哦。 <br /><br />http://www.65city.com/rstars/code/index.asp <br />星际闪电－超级原代码下载基地，听听名字可是有很多代码的，进去看一下就知道了，到时不要说我说的不清楚哦。 <br /><br />http://myfan4.51.net/index.php <br />蓝色代码 <br /><br />http://down.supersea.net/down/list.php <br />大海软件园 <br /><br />http://www.y366.com/down/SoftList.a...=9&SubCateID=71 <br />源点下载，代码很少，但是能够下载。 <br /><br />http://0752i.com/download/soft.cgi?type=2 <br />建站原动力，只有聊聊几个代码，全部能下的哦。 <br /><br />http://www.7287.com/download/index.php <br />凯文下载，有几个代码是很不错的，但站长不提供下载，有谁去向他要要看，我很喜欢他的东东。 <br /><br />http://www.php2000.com/ <br />PHP世纪网 <br /><br />http://loveccl.nnoo.com/bbs1/cxxz/index.asp?page=24 <br />http://love50.cn.st <br />纯真源码之家 <br /><br />http://www.flashmeng.net <br />红枫谷代码中心 <br /><br />http://www.code-labs.com/php/ <br />代码实验室 <br /><br />http://phield.com/club/list.php?f=21 <br />PHP 田园 <br /><br />http://www.vcfan.com/php/articles.asp <br />程序家园--php编程 <br /><br />http://www.59178.com/program.asp?url=a53 <br />PHP知识网 <br /><br />http://fxdfbl.51.net/php/ <br />九六零五 <br /><br />http://phpokgo.51.net/article/index.php <br />魔豆工作室 <br /><br />http://www.1stphp.com/ <br />1stPHP <br /><br />http://tech.sina.com.cn/introduction/focus/php.shtml <br />新浪PHP <br /><br />http://www.59178.com/program.asp?url=a51 <br />PHP中文用户 <br /><br /><br />http://www.8down.com/ <br />八天下载站 <br /><br />　　　　　　　　　　　　　　　　　　时光码头----reishi 整理 <br /><br />其实好的源码分散在一些小网站里，小站不怕公安局，什么都敢放！ 有部分小站现在可能打不开了 <br /><br /><br />http://cnlt.net/down/ <br />http://www.fuo.cc <br />http://www.lssky.net/codedown/ <br />http://code.smres.net/ <br />http://down.cnlt.net <br />http://china5656.com/xp <br />http://www.netxiao.com/down <br />http://www.gogo8.com/bbs <br />http://www.smres.net <br />http://www.htmchina.com/src/ <br />http://www.aspcool.com/download/ <br />http://www.netxiao.com/download/soft.asp?classid=3 <br />http://www.99soft.com/sort/364_1.htm <br />http://www.programfan.com/source.asp <br />http://www.citytea.com/download/sort.asp?classid=9 <br />http://www.xxsky.com/dotdown/ <br />http://www.173344.net/dl/sort.asp?zhuid=1 <br />http://code.smres.net/ <br />http://down.hejiang.net/ <br />http://www.cn3000.com/soft/ <br />http://www.51nis.com/down/ <br />http://www.wangke.com/m.asp?o=1 <br />http://www.chaoji.net/down/sort.asp...=4&Nclassid=197 <br />http://city160.com/down/sort.asp?classid=9 <br />http://m21cn.net/down/ <br />http://mysoftware.uni.cc:8080/mysoft/category.php?cid=1 <br />http://loveccl.nnoo.com/bbs1/cxxz/index.asp?page=24
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/104136#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 22 Jul 2007 18:21:03 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/104136</link>
        <guid>http://yongsky.javaeye.com/blog/104136</guid>
      </item>
      <item>
        <title>用Itext把数据导出到Pdf文档</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/99406" style="color:red;">http://yongsky.javaeye.com/blog/99406</a>&nbsp;
          发表时间: 2007年07月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          工夫不负有心人!先用POI实现了把数据导出为Excel,现在又实现了用Itext把数据导出为Pdf文档.因为这些技术是以前都没有接触的,而现在又都基本掌握了,所以心里略有一些成就感.现把完整程序代码列在下面,以供对Itext有兴趣的朋友参考.<br /><br />ItextPdfDmo.java<br /><br /><pre name="code" class="java">package com.javaeye.yongsky;

import java.awt.Color;
import java.io.FileOutputStream;
import java.sql.ResultSet;

import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
/**
 * 
 * @author yangshoujun
 * 
 */
public class ItextPdfDmo {

	//表头
	public static final String[] tableHeader = { "企业中文名", "所属国家", "企业英文名",
			"2003年排名", "2004年排名", "2005年排名", "2006年排名", "2007年排名", "主要业务",
			"2003年营业额", "2004年营业额", "2005年营业额", "2006年营业额", "2007年营业额", "企业编号",
			"名次升降", "图片", "状况" };
	//数据表字段数
	private static final int colNumber = 18;
	//表格的设置
	private static final int spacing = 2;
	//表格的设置
	private static final int padding = 2;
	//导出Pdf文挡
	public static void exportPdfdocument() {
		// 创建文Pdf文挡
		Document document = new Document(new Rectangle(1500, 2000), 10, 10, 10,
				10);
		try {
			PdfWriter.getInstance(document, new FileOutputStream(
					"d:\\世界五百强企业名次表.pdf"));
			document.open();
			// 中文字体
			BaseFont bfChinese = BaseFont.createFont("STSong-Light",
					"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
			Font fontChinese = new Font(bfChinese, 12, Font.HELVETICA);
			// 创建有colNumber(18)列的表格
			PdfPTable datatable = new PdfPTable(colNumber);
			int[] cellsWidth = { 8, 5, 8, 3, 3, 3, 3, 2, 6, 4, 4, 4, 4, 2, 2,
					2, 2, 2 };
			datatable.setWidths(cellsWidth);
			datatable.setWidthPercentage(100); // 表格的宽度百分比
			datatable.getDefaultCell().setPadding(padding);
			datatable.getDefaultCell().setBorderWidth(spacing);
			datatable.getDefaultCell().setBackgroundColor(Color.ORANGE);
			datatable.getDefaultCell().setHorizontalAlignment(
					Element.ALIGN_CENTER);
			// 添加表头元素
			for (int i = 0; i &lt; colNumber; i++) {
				datatable.addCell(new Paragraph(tableHeader[i], fontChinese));
			}
			datatable.setHeaderRows(1); // 表头结束
			datatable.getDefaultCell().setBorderWidth(1);

			ResultSet rs = SheetDataSource.selectAllDataFromDB();
			int rowIndex = 1;
			while (rs.next()) {
				if (rowIndex % 2 == 1) {
					datatable.getDefaultCell().setGrayFill(0.9f);
				}
				for (int i = 1; i &lt;= colNumber; i++)
					datatable.addCell(new Paragraph(rs.getString(i),
							fontChinese));
				if (rowIndex % 2 == 1) {
					datatable.getDefaultCell().setGrayFill(1.0f);
				}
				rowIndex++;
			}
			document.add(datatable);
		} catch (Exception e) {
			e.printStackTrace();
		}
		document.close();
	}

	public static void main(String[] args) {
		exportPdfdocument();
	}
}
</pre><br />本程序主要功能 : 程序可以把数据库中数据以表格的形式导出到Pdf文档,并对表格做了些简单的设置.本程序引用我的前一篇文章中用到的SheetDataSource.java这个文件,文章附件中有详细代码.<br /><br />有关Itext[附]:<br /><br />(一)Itext简单介绍 :iText是著名的开放源码的站点sourceforge一个项目，是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档，而且可以将XML、Html文件转化为PDF文件。<br /><br />(二)Itext入门<br />使用Itext主要有五个步骤:<br />(1)建立com.lowagie.text.Document对象的实例<br />   <pre name="code" class="java"> Document document = new Document();</pre><br /><br />(2)建立一个书写器(Writer)与document对象关联，通过书写器(Writer)可以将文档写入到磁盘中。<br /><pre name="code" class="java">PDFWriter.getInstance(document, new FileOutputStream("D:\\HelloItext.PDF")); </pre><br /><br />(3)打开文档。<br /><pre name="code" class="java">document.open();</pre><br /><br />(4)向文档中添加内容。<br /><pre name="code" class="java">document.add(new Paragraph("Hello Itext"));</pre><br /><br />(5)关闭文档。<br /><pre name="code" class="java">document.close();</pre><br /><br />通过上面的5个步骤，就能产生一个简单HelloItext.PDF的文件，文件内容为"Hello Itext"。当然用Itext实现这样的功能很简单,但是如果要达到我们实际的要求就没有这么简单了.如果要完全掌握Itext还需要阅读文档和有关资料.Itext包括表格处理,图像处理,报表等复杂的应用.<br /><br />简单的完整可运行的代码如下:<br /><pre name="code" class="java">
package com.javaeye.yongsky;

import java.io.FileOutputStream;

import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;

public class HelloItext {

	public static void main(String[] args) {
		Document document = new Document(PageSize.A4.rotate(), 10, 10, 10, 10);
		try {
			PdfWriter.getInstance(document, new FileOutputStream("D:\\HelloItext.pdf"));
			document.open();
			document.add(new Paragraph("Hello Itext"));
		} catch (Exception de) {
			de.printStackTrace();
		}
		document.close();
	}
}</pre><br />提示:<br />　　　　下面附件中有Itext的JAR包可和官方文档供下载．
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/99406#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 09 Jul 2007 13:54:09 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/99406</link>
        <guid>http://yongsky.javaeye.com/blog/99406</guid>
      </item>
      <item>
        <title>用POI把数据导出为Excel</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/99075" style="color:red;">http://yongsky.javaeye.com/blog/99075</a>&nbsp;
          发表时间: 2007年07月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在做我们的JAVA课程设计，我的设计里面涉及到了对信息的导出，包括导出Excel和Pdf．在网上查了有关Poi的资料查了很久终于写出了满足自己需求的程序．以下是程序的全部代码：<br /><br />（一）SheetDataSource．java<br /><br /><pre name="code" class="java">package com.javaeye.yongsky;

import java.sql.*;
import java.util.*;

import com.microsoft.jdbc.*;

public class SheetDataSource {

 private static Connection con ;
 
 private static final String DatabaseName = "POIDEMO";
 
 private static final String userName = "sa";
 
 private static final String password = "123";
 
 public SheetDataSource()
 {
  try {
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   try {
     con = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName="+DatabaseName,userName,password);
   } catch (SQLException e) {
    e.printStackTrace();
   }
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 
 public static ResultSet selectAllDataFromDB() throws SQLException 
 { 
   new SheetDataSource();
   Statement stmt = con.createStatement();
   return stmt.executeQuery("select * from COMPANY");
 }
 
}</pre><br /><br />上面部分代码主要是从数据库里面取出数据，作为Excel的数据源．<br /><br />（二）PoiDemo．java<br /><br /><pre name="code" class="java">package com.javaeye.yongsky;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;

import javax.swing.JOptionPane;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFFooter;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class PoiDemo {

	//表头
	public static final String[] tableHeader = {"企业中文名","所属国家","企业英文名","2003年排名","2004年排名","2005年排名",
		"2006年排名","2007年排名","主要业务","2003年营业额","2004年营业额","2005年营业额","2006年营业额","2007年营业额","企业编号","名次升降",
		"图片","状况"};
	//创建工作本
	public static HSSFWorkbook demoWorkBook = new HSSFWorkbook();
	//创建表
	public static HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 Enterprises");
	//表头的单元格个数目
	public static final short cellNumber = (short)tableHeader.length;
	//数据库表的列数
	public static final int columNumber = 18;
	/**
	 * 创建表头
	 * @return
	 */
	public static void createTableHeader()
	{
		HSSFHeader header = demoSheet.getHeader();
		header.setCenter("世界五百强企业名次表");
		HSSFRow headerRow = demoSheet.createRow((short) 0);
		for(int i = 0;i &lt; cellNumber;i++)
		{
			HSSFCell headerCell = headerRow.createCell((short) i);
			headerCell.setEncoding(HSSFCell.ENCODING_UTF_16);
			headerCell.setCellValue(tableHeader[i]);
		}
	}
	/**
	 * 创建行
	 * @param cells
	 * @param rowIndex
	 */
	public static void createTableRow(List&lt;String> cells,short rowIndex)
	{
		//创建第rowIndex行
		HSSFRow row = demoSheet.createRow((short) rowIndex);
		for(short i = 0;i &lt; cells.size();i++)
		{
			//创建第i个单元格
			HSSFCell cell = row.createCell((short) i);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
	        cell.setCellValue(cells.get(i));
		}
	}
	
	/**
	 * 创建整个Excel表
	 * @throws SQLException 
	 *
	 */
	public static void createExcelSheeet() throws SQLException
	{
		createTableHeader();
		ResultSet rs = SheetDataSource.selectAllDataFromDB();
		int rowIndex = 1;
		while(rs.next())
		{
			List&lt;String> list = new ArrayList&lt;String>();
			for(int i = 1;i &lt;= columNumber;i++)
			{
				list.add(rs.getString(i));
			}
			createTableRow(list,(short)rowIndex);
			rowIndex++;
		}
	}
	/**
	 * 导出表格
	 * @param sheet
	 * @param os
	 * @throws IOException
	 */
	public void exportExcel(HSSFSheet sheet,OutputStream os) throws IOException
	{
		sheet.setGridsPrinted(true);
        HSSFFooter footer = sheet.getFooter();
        footer.setRight("Page " + HSSFFooter.page() + " of " +
        HSSFFooter.numPages());
        demoWorkBook.write(os);
	}
	
	public static void main(String[] args) {
		String fileName = "D:\\世界五百强企业名次表.xls";
		 FileOutputStream fos = null;
	        try {
	        	PoiDemo pd = new PoiDemo();
	        	pd.createExcelSheeet();
	            fos = new FileOutputStream(fileName);
	            pd.exportExcel(demoSheet,fos);
	            JOptionPane.showMessageDialog(null, "表格已成功导出到 : "+fileName);
	        } catch (Exception e) {
	        	JOptionPane.showMessageDialog(null, "表格导出出错，错误信息 ："+e+"\n错误原因可能是表格已经打开。");
	        	e.printStackTrace();
	        } finally {
	            try {
	                fos.close();
	            } catch (Exception e) {
	                e.printStackTrace();
	            }
	        }
	}
}</pre><br /><br /><br />另外在附件里面附带有本程序所用的所有资源，包括源代码文件，数据库和POI的JAR包，欢迎有兴趣的朋友参考，并提出宝贵的意见．<br />致谢　：　<br />　　　　　本程序的数据库由兄弟温总提供，为了不让他免费为我们提供他辛辛苦苦做出数据库而感到心里不平衡，在此向他表示感谢！ <img src="/images/smiles/icon_biggrin.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/99075#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 08 Jul 2007 13:28:45 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/99075</link>
        <guid>http://yongsky.javaeye.com/blog/99075</guid>
      </item>
      <item>
        <title>How to Cultivate “EQ”</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/85638" style="color:red;">http://yongsky.javaeye.com/blog/85638</a>&nbsp;
          发表时间: 2007年06月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font style="BACKGROUND-COLOR: #ffffff"><font color="#c0c0c0"><font size="3"><strong>What is the most valuable contribution employees make to their companies,knowledge or judgment?I say judgment .Knowledge ,no matter how broad ,is useless until it is applied.And application takes judgment,which involves something of a sixth sense -a high performance of the mind.</strong></font>&nbsp;</font></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff"><font color="#c0c0c0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font size="4">&nbsp;This raises interesting questions about the best training for today's business people.As Daniel Goleman suggests in his new book,Emotional Intelligence,the latest scientific findings seem to indicate that intelligent but inflexible people don't have the right stuff in an age when the adaptive ability is the key to survival .</font></font></font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In a recent cover story,Time magazine sorted through the current thinking on intelligence and reported,&quot;New brain research suggests that emotions,not IQ may be the true measure of human intelligence.&quot;The basic significance of the emotional intelligence that Time called &quot;EQ&quot;was suggested by management expert Karen Boylston;&quot;Customers are telling busimesses,'I don't care if every member of your staff graduated from Harvard.I will take my business and go where I am understood and treated with respect.'''</font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the evolutionary pressures of the marketplace are making EQ,not IQ,the hot ticket for business success,it seems likely that individuals will want to know how to cultivate it ,I have a modest proposal :Embrace a highly personal practice aimed at improving these four adaptive skilla;</font></p>
<p><font size="4" color="#0000ff" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#00ff00"> Raising consciorsness.I think of this as thinking differently on purpose .It's about noticing what you are feeling and thinking and escaping the conditioned confines of your past.Raise your comsciousness by catching yourself in the act of thinking as often as possible .Routinely take note of your emotions and ask if you're facing facts or avoiding them.</font></font></p>
<p><font size="4" color="#00ff00" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Using imagery.This is what you see Olympic ski racers doing before entering the starting gate .With their eyes cloed and bodies swaying,they run the course in their minds first,which improves their performance.You can do the same by setting aside time each day to dream with passion about what you want to achieve.</font></p>
<p><font size="4" color="#00ff00" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Considering and reconsidering events to choose the most creative response to them.When a Greek philosopher said 2,000 years ago that it isn't events that matter but our opinon of them .this is what he was thalking about.Every time something important happens ,assign as many interpretations to it as possible ,even carzy ones.Then go with the interpretation most supportive of your dreams.</font></p>
<p><font size="4" color="#00ff00" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integrating the perspectives of others.Brain research shows that our view of the world is limited by our genes and the experiences we 've had.Learning to incorporate the useful perspectives of others is nothing less that a form of enlarging your senes.The next time someone interprets something differently from you -say.a controversial political event-pause to reflect on the role of life experience and consider it a gift of perception.</font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The force of&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; habit -literally the established wiring of your brain -will pull you away from practicing these skills .Keep at it ,however ,because they are based on what we're learning about the mechanisms of the mind.</font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Within the first six months of life hte human brain doubles in capacity;it doubles again by age four and then grows rapidly until we sexual maturity.The body has about a hundred billion nerve cells,and every experience triggers a brain response that literally shapes our senses .The mind ,we now know .is not comfined to the brain but is distributed throughout the body's universe of cells.Yes,we do think with our hearts .brains. muscles, blood and bones.</font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; During a single crucial three-week period during our teenage years. chemical activity in the brain is cut in half .That done , we are &quot;biologically wired&quot;with what one of the nation;s leading brain researchers calls our own&quot;world view &quot;.He says it is impossible for any two people to see the world exactly alike .So unique is the personal experience that people would understand the world differently .</font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; However,it is not only plssible to change your world view ,he says,it's actually easier than overcoming a drug habit .But you need a discipline for doing it .Hence,the methos recommmended here.</font></p>
<p><font size="4" color="#c0c0c0" style="BACKGROUND-COLOR: #ffffff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No,it's not a curriculum in the sense that an MBA is .But the latest research seems to imply that without the software of emotional maturity and self-knowledge ,the hardware of academic training alone is worth less and less.</font></p>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/85638#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Jun 2007 12:21:08 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/85638</link>
        <guid>http://yongsky.javaeye.com/blog/85638</guid>
      </item>
      <item>
        <title>关于spring框架中的ioc的幽默解释</title>
        <author>yongsky</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yongsky.javaeye.com">yongsky</a>&nbsp;
          链接：<a href="http://yongsky.javaeye.com/blog/83165" style="color:red;">http://yongsky.javaeye.com/blog/83165</a>&nbsp;
          发表时间: 2007年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font size="2">IoC就是Inversion of Control，控制反转。在Java开发中，IoC意味着将你设计好的类交给系统去控制，而不是在你的类内部控制。这称为控制反转。 <br />
<br />
下面我们以几个例子来说明什么是IoC <br />
<br />
&nbsp;&nbsp;&nbsp; 假设我们要设计一个Girl和一个Boy类，其中Girl有kiss方法，即Girl想要Kiss一个Boy。那么，我们的问题是，Girl如何能够认识这个Boy？ <br />
<br />
在我们中国，常见的ＭＭ与GG的认识方式有以下几种 <br />
<br />
１　青梅竹马； <br />
２　亲友介绍； <br />
３　父母包办 <br />
<br />
那么哪一种才是最好呢？ <br />
<br />
青梅竹马：Girl从小就知道自己的Boy。 <br />
<br />
public class Girl { <br />
void kiss(){ <br />
Boy boy = new Boy(); <br />
} <br />
} <br />
<br />
&nbsp;&nbsp;&nbsp; 然而从开始就创建的Boy缺点就是无法在更换。并且要负责Boy的整个生命周期。如果我们的Girl想要换一个怎么办？（笔者严重不支持Girl经常更换Boy） <br />
<br />
亲友介绍：由中间人负责提供Boy来见面 <br />
<br />
public class Girl { <br />
void kiss(){ <br />
Boy boy = BoyFactory.createBoy(); <br />
} <br />
} <br />
<br />
<br />
&nbsp;&nbsp;&nbsp; 亲友介绍，固然是好。如果不满意，尽管另外换一个好了。但是，亲友BoyFactory经常是以Singleton的形式出现，不然就是，存在于 Globals，无处不在，无处不能。实在是太繁琐了一点，不够灵活。我为什么一定要这个亲友掺和进来呢？为什么一定要付给她介绍费呢？万一最好的朋友爱上了我的男朋友呢？ <br />
<br />
父母包办：一切交给父母，自己不用费吹灰之力，只需要等着Kiss就好了。 <br />
<br />
<br />
public class Girl { <br />
void kiss(Boy boy){ <br />
// kiss boy <br />
boy.kiss(); <br />
} <br />
} <br />
<br />
&nbsp;&nbsp;&nbsp; Well，这是对Girl最好的方法，只要想办法贿赂了Girl的父母，并把Boy交给他。那么我们就可以轻松的和Girl来Kiss了。看来几千年传统的父母之命还真是有用哦。至少Boy和Girl不用自己瞎忙乎了。 <br />
<br />
这就是IOC，将对象的创建和获取提取到外部。由外部容器提供需要的组件。 <br />
<br />
我们知道好莱坞原则：&ldquo;Do not call us, we will call you.&rdquo; 意思就是，You, girlie, do not call the boy. We will feed you a boy。 <br />
<br />
我们还应该知道依赖倒转原则即 Dependence Inversion Princinple，DIP。 <br />
Eric Gamma说，要面向抽象编程。面向接口编程是面向对象的核心。 <br />
<br />
组件应该分为两部分，即 <br />
<br />
Service, 所提供功能的声明 <br />
<br />
Implementation, Service的实现 <br />
<br />
好处是：多实现可以任意切换，防止 &ldquo;everything depends on everything&rdquo; 问题．即具体依赖于具体。 <br />
<br />
&nbsp;&nbsp;&nbsp; 所以，我们的Boy应该是实现Kissable接口。这样一旦Girl不想kiss可恶的Boy的话，还可以kiss可爱的kitten和慈祥的grandmother。 <br />
<br />
<br />
<strong><wbr></wbr>二、IOC的type</strong><wbr></wbr> <br />
<br />
IoC的Type指的是Girl得到Boy的几种不同方式。我们逐一来说明。 <br />
<br />
<br />
IOC type 0：不用IOC <br />
<br />
public class Girl implements Servicable { <br />
<br />
private Kissable kissable; <br />
<br />
public Girl() { <br />
kissable = new Boy(); <br />
} <br />
<br />
public void kissYourKissable() { <br />
kissable.kiss(); <br />
} <br />
<br />
} <br />
<br />
Girl自己建立自己的Boy，很难更换，很难共享给别人，只能单独使用，并负责完全的生命周期。 <br />
<br />
<br />
IOC type 1，先看代码： <br />
<br />
public class Girl implements Servicable { <br />
<br />
Kissable kissable; <br />
<br />
public void service(ServiceManager mgr) { <br />
kissable = (Kissable) mgr.lookup(&ldquo;kissable&rdquo;); <br />
} <br />
<br />
public void kissYourKissable() { <br />
kissable.kiss(); <br />
} <br />
<br />
} <br />
<br />
&nbsp;&nbsp;&nbsp; 这种情况出现于Avalon Framework。一个组件实现了Servicable接口，就必须实现service方法，并传入一个ServiceManager。其中会含有需要的其它组件。只需要在service方法中初始化需要的Boy。 <br />
<br />
另外，J2EE中从Context取得对象也属于type 1。 <br />
<br />
<br />
它依赖于配置文件&nbsp;<component name="“kissable“" class="“Boy"><br />
<configuration></configuration> </component><br />
IOC type 2： <br />
<br />
public class Girl { <br />
<br />
private Kissable kissable; <br />
<br />
public void setKissable(Kissable kissable) { <br />
this.kissable = kissable; <br />
} <br />
<br />
public void kissYourKissable() { <br />
kissable.kiss(); <br />
} <br />
<br />
} <br />
<br />
&nbsp;&nbsp;&nbsp; Type 2出现于Spring Framework，是通过JavaBean的set方法来将需要的Boy传递给Girl。它必须依赖于配置文件。 <br />
<bean class="“Girl" id="“girl“"></bean><br />
IOC type 3 <br />
<br />
public class Girl { <br />
<br />
private Kissable kissable; <br />
<br />
public Girl(Kissable kissable) { <br />
this.kissable = kissable; <br />
} <br />
<br />
public void kissYourKissable() { <br />
kissable.kiss(); <br />
} <br />
<br />
} <br />
<br />
这就是PicoContainer的组件 。通过构造函数传递Boy给Girl。 <br />
<br />
PicoContainer container = new DefaultPicoContainer(); <br />
container.registerComponentImplementation(Boy.class); <br />
container.registerComponentImplementation(Girl.class); <br />
Girl girl = (Girl) container.getComponentInstance(Girl.class); <br />
girl.kissYourKissable();&nbsp; </font>
          <br/>
          <span style="color:red;">
            <a href="http://yongsky.javaeye.com/blog/83165#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 May 2007 18:45:03 +0800</pubDate>
        <link>http://yongsky.javaeye.com/blog/83165</link>
        <guid>http://yongsky.javaeye.com/blog/83165</guid>
      </item>
  </channel>
</rss>