锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲日本国产精华液,亚洲一本一道一区二区三区,jiz zz在亚洲http://m.tkk7.com/needjava/category/21490.htmlYou Need Java, Like World Need Sun.zh-cnMon, 17 Sep 2007 18:08:12 GMTMon, 17 Sep 2007 18:08:12 GMT60銆擩ava銆曘擲wing銆曞叧闂墠鎻愰啋http://m.tkk7.com/needjava/archive/2007/09/17/146007.htmlNeedJavaNeedJavaMon, 17 Sep 2007 14:56:00 GMThttp://m.tkk7.com/needjava/archive/2007/09/17/146007.htmlhttp://m.tkk7.com/needjava/comments/146007.htmlhttp://m.tkk7.com/needjava/archive/2007/09/17/146007.html#Feedback0http://m.tkk7.com/needjava/comments/commentRss/146007.htmlhttp://m.tkk7.com/needjava/services/trackbacks/146007.html import java.awt.Toolkit;
import java.awt.Dimension;

import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;

import javax.swing.JFrame;
import javax.swing.JOptionPane;


/*******************************************************************************
聽*
聽* 鍏抽棴鍓嶆彁閱?br />聽*
聽* Author: NeedJava
聽*
聽* Modofied: 2005.04.02
聽*
聽******************************************************************************/
class AlarmBeforeClosed extends JFrame
{
聽 public AlarmBeforeClosed( String title )
聽 {
聽聽聽 //璁劇疆紼嬪簭鏍囬鏍?br />聽聽聽 this.setTitle( title );

聽聽聽 //涓嶇粰鏈澶у寲
聽聽聽 this.setResizable( false );

聽聽聽 //璁劇疆紼嬪簭鐣岄潰澶у皬
聽聽聽 this.setSize( new Dimension( 500, 400 ) );

聽聽聽 //灝嗙▼搴忓眳涓斁緗紙鏂規硶1錛?br />聽聽聽 Dimension paneSize=this.getSize();
聽聽聽 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
聽聽聽 this.setLocation( ( screenSize.width-paneSize.width )/2, ( screenSize.height-paneSize.height )/2 );

聽聽聽 //灝嗙▼搴忓眳涓斁緗紙鏂規硶2錛?br />聽聽聽 //this.setLocationRelativeTo( null );

聽聽聽 //璁劇疆紼嬪簭鍏抽棴鐨勭被鍨嬶紝闃叉鍏抽棴
聽聽聽 this.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );

聽聽聽 //璁劇疆鍏抽棴紼嬪簭
聽聽聽 this.addWindowListener( new WindowAdapter()
聽聽聽 {
聽聽聽聽聽 public void windowClosing( WindowEvent e )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 closeApplication();
聽聽聽聽聽 }
聽聽聽 } );
聽 }


聽 /*****************************************************************************
聽聽 *
聽聽 * 鍏抽棴紼嬪簭
聽聽 *
聽聽 ****************************************************************************/
聽 private void closeApplication()
聽 {
聽聽聽 Toolkit.getDefaultToolkit().beep();

聽聽聽 int answer=JOptionPane.showConfirmDialog( AlarmBeforeClosed.this,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "鎮ㄧ湡鐨勮閫鍑烘緋葷粺錛?,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "閫鍑虹▼搴?,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 JOptionPane.YES_NO_OPTION,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 JOptionPane.QUESTION_MESSAGE,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 null );

聽聽聽 if( answer==JOptionPane.YES_OPTION )聽 //閫夋嫨鈥滄槸鈥?br />聽聽聽聽聽 {
聽聽聽聽聽聽聽 System.exit( 0 );
聽聽聽聽聽 }
聽聽聽 else if( answer==JOptionPane.NO_OPTION )聽 //閫夋嫨鈥滃惁鈥?br />聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 return;
聽聽聽聽聽聽聽聽聽聽 }
聽 }


聽 /*****************************************************************************
聽聽 *
聽聽 * 鍏ュ彛涓葷▼搴?br />聽聽 *
聽聽 ****************************************************************************/
聽 public static void main( String[] args )
聽 {
聽聽聽 new AlarmBeforeClosed( "鍏抽棴鍓嶆彁閱? ).setVisible( true );
聽 }
}



NeedJava 2007-09-17 22:56 鍙戣〃璇勮
]]>
銆擩ava銆曚箻闄ゆ硶鍜岀瓑鏁堢殑浣嶈繍綆?/title><link>http://m.tkk7.com/needjava/archive/2007/09/17/145706.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Mon, 17 Sep 2007 01:17:00 GMT</pubDate><guid>http://m.tkk7.com/needjava/archive/2007/09/17/145706.html</guid><wfw:comment>http://m.tkk7.com/needjava/comments/145706.html</wfw:comment><comments>http://m.tkk7.com/needjava/archive/2007/09/17/145706.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/needjava/comments/commentRss/145706.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/needjava/services/trackbacks/145706.html</trackback:ping><description><![CDATA[ <p> <font face="Courier New" color="#808080" size="2">/*******************************************************************************<br />聽*<br />聽* 涔橀櫎娉曞拰絳夋晥鐨勪綅榪愮畻<br />聽*<br />聽* 1024 = 2*2*2*2*2*2*2*2*2*2 = 100 0000 0000<br />聽*<br />聽******************************************************************************/<br />class BitOperation<br />{<br />聽 public static void main( String[] args )<br />聽 {<br />聽聽聽 //琚櫎鏁?br />聽聽聽 long dividend=182495073L;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 long temp=0L;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 long begin=0L;</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽聽聽 ////////////////////////////////////////////////////////////////////////////<br />聽聽聽 //<br />聽聽聽 // dividend/1024絳夋晥浜巇ividend>>10<br />聽聽聽 //<br />聽聽聽 ////////////////////////////////////////////////////////////////////////////<br />聽聽聽 begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 for( int i=0; i<10000000; i++ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 temp=dividend/1024;<br />聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣" );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 for( int i=0; i<10000000; i++ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 temp=dividend>>10;<br />聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽聽聽 ////////////////////////////////////////////////////////////////////////////<br />聽聽聽 //<br />聽聽聽 // dividend*1024絳夋晥浜巇ividend<<10<br />聽聽聽 //<br />聽聽聽 ////////////////////////////////////////////////////////////////////////////<br />聽聽聽 begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 for( int i=0; i<10000000; i++ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 temp=dividend*1024;<br />聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣" );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 for( int i=0; i<10000000; i++ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 temp=dividend<<10;<br />聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽聽聽 ////////////////////////////////////////////////////////////////////////////<br />聽聽聽 //<br />聽聽聽 // dividend%1024絳夋晥浜巇ividend-( dividend>>10<<10 )<br />聽聽聽 //<br />聽聽聽 ////////////////////////////////////////////////////////////////////////////<br />聽聽聽 begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 for( int i=0; i<10000000; i++ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 temp=dividend%1024;<br />聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣" );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 for( int i=0; i<10000000; i++ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 temp=dividend-( dividend>>10<<10 );<br />聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );<br />聽 }<br />}</font> </p> <img src ="http://m.tkk7.com/needjava/aggbug/145706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/needjava/" target="_blank">NeedJava</a> 2007-09-17 09:17 <a href="http://m.tkk7.com/needjava/archive/2007/09/17/145706.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆擩ava銆曠敤Integer.toString( 1000 )濂戒簬1000+""http://m.tkk7.com/needjava/archive/2007/09/17/145665.htmlNeedJavaNeedJavaSun, 16 Sep 2007 17:23:00 GMThttp://m.tkk7.com/needjava/archive/2007/09/17/145665.htmlhttp://m.tkk7.com/needjava/comments/145665.htmlhttp://m.tkk7.com/needjava/archive/2007/09/17/145665.html#Feedback8http://m.tkk7.com/needjava/comments/commentRss/145665.htmlhttp://m.tkk7.com/needjava/services/trackbacks/145665.html 鎴戝師鏉ユ妸鏁板瓧鍙樻垚瀛楃涓詫紝浣跨敤""+1000錛屼絾鏄粡榪囨祴璇曪紝鍙戠幇錛岋紝錛屽懙鍛碉紝浣犺嚜宸辨祴璇曞惂錛?br />
public final class WhoFaster2
{
聽 public static void main( String[] args )
聽 {
聽聽聽 long times=1000000L;聽 //鐧句竾

聽聽聽 long start=0L;

聽聽聽 String temp=null;

聽聽聽 /*/
聽聽聽 start=System.currentTimeMillis();

聽聽聽 temp=null;

聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=times+"";
聽聽聽聽聽聽 }

聽聽聽 System.out.println( temp+"銆"+( System.currentTimeMillis()-start ) );
聽聽聽 /*/
聽聽聽 start=System.currentTimeMillis();

聽聽聽 temp=null;

聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=Long.toString( times );
聽聽聽聽聽聽 }

聽聽聽 System.out.println( temp+"銆"+( System.currentTimeMillis()-start ) );
聽聽聽 //*/
聽 }
}



NeedJava 2007-09-17 01:23 鍙戣〃璇勮
]]>
銆擩ava銆曠湅鐪嬭皝璇葷殑蹇?/title><link>http://m.tkk7.com/needjava/archive/2007/09/17/145663.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Sun, 16 Sep 2007 17:02:00 GMT</pubDate><guid>http://m.tkk7.com/needjava/archive/2007/09/17/145663.html</guid><wfw:comment>http://m.tkk7.com/needjava/comments/145663.html</wfw:comment><comments>http://m.tkk7.com/needjava/archive/2007/09/17/145663.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/needjava/comments/commentRss/145663.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/needjava/services/trackbacks/145663.html</trackback:ping><description><![CDATA[ <p> <font face="Courier New" color="#808080" size="2">鍒氬垰鍐欑殑鐪嬭皝澶嶅埗鐨勫揩錛屽彧鏄敱浜庡湪欏圭洰涓姽璞埌搴曟槸鐢ㄥ摢涓ソ鑰屽啓鐨勶紝娌℃兂鍒板ぇ瀹跺緢鎰熷叴瓚o紝閭f垜鍐嶆妸璇誨彇鏂囦歡璋佸揩涔熺炕涓婃潵錛屾湁閿欏敖綆℃媿鐮栥?br /><br />鍙﹀錛屾渶濂借兘鏀懼湪鏈変笂涓囧紶10KB浠ヤ笂鐨勫浘鐗囩殑鏂囦歡澶逛笅榪愯錛屽惁鍒欎笉涓瀹氱湅鍑烘晥鏋滐紝鎴戠殑鏄叚鍗冨寮狅紝10240杞繪澗鍙栬儨銆?br /><br />import java.io.File;<br />import java.io.IOException;<br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">/*******************************************************************************<br />聽*<br />聽*<br />聽* Author: NeedJava<br />聽*<br />聽* Modified: 2007.08.26<br />聽*<br />聽******************************************************************************/<br />public final class ReadFaster<br />{<br />聽 /*****************************************************************************<br />聽聽 *<br />聽聽 * 鏋勯犲嚱鏁幫紝榛樿浣跨敤褰撳墠璺緞<br />聽聽 *<br />聽聽 ****************************************************************************/<br />聽 public ReadFaster()<br />聽 {<br />聽聽聽 this( "." );<br />聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 public ReadFaster( String fileName )<br />聽 {<br />聽聽聽 this.listPictures( null, fileName );<br />聽 }</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽 /*****************************************************************************<br />聽聽 *<br />聽聽 * 鍒楀嚭褰撳墠鐩綍涓嬬殑鏂囦歡鍒楄〃錛屽寘鎷枃浠跺拰鏂囦歡澶?br />聽聽 *<br />聽聽 ****************************************************************************/<br />聽 private final void listPictures( File path, String fileName )<br />聽 {<br />聽聽聽 File file=new File( path, fileName );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 if( file.isDirectory() )<br />聽聽聽聽聽 {<br />聽聽聽聽聽聽聽 //寰楀埌褰撳墠鐩綍涓嬬殑鏂囦歡鍒楄〃錛屽寘鎷枃浠跺拰鏂囦歡澶?br />聽聽聽聽聽聽聽 String[] children=file.list();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽 //濡傛灉瀛愰泦涓虹┖錛屽氨鏀懼純鍚庨潰鐨勬搷浣?br />聽聽聽聽聽聽聽 if( children==null )<br />聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽 return;<br />聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽 //鎺掑簭<br />聽聽聽聽聽聽聽 //java.util.Arrays.sort( children );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽 //濡傛灉瀛愰泦涓嶄負絀猴紝鍒欐樉紺?br />聽聽聽聽聽聽聽 for( int i=0; i<children.length; i++ )<br />聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽 listPictures( file, children[i] );<br />聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽 }<br />聽聽聽 else if( file.isFile() )<br />聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽 if( isPictureSuffix( file.getPath() ) )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 readPicture( file );<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽 }<br />聽 }</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽 /*****************************************************************************<br />聽聽 *<br />聽聽 * 鏍規嵁鍚庣紑鍚嶅垽鏂槸鍚︽槸鏈夋晥鐨勫浘鐗囷紝騫朵笖榪斿洖灝忓啓鐨勫悗緙鍚?br />聽聽 *<br />聽聽 ****************************************************************************/<br />聽 private final boolean isPictureSuffix( String fileName )<br />聽 {<br />聽聽聽 if( fileName==null )<br />聽聽聽聽聽 {<br />聽聽聽聽聽聽聽 return false;<br />聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 int length=fileName.length();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 //鍙兘瀛樺湪鈥?jpg鈥濊繖鏍風殑鏂囦歡錛屽嵆4涓瓧絎?br />聽聽聽 if( length>=4 )<br />聽聽聽聽聽 {<br />聽聽聽聽聽聽聽 char c=fileName.charAt( length-4 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽 if( c=='.' )<br />聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-3 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽 if( c=='j'||c=='J' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='p'||c=='P' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='g'||c=='G' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if( c=='e'||c=='E' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽 else if( c=='t'||c=='T' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='i'||c=='I' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽 else if( c=='j'||c=='J' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-3 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='p'||c=='P' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='e'||c=='E' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='g'||c=='G' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if( c=='f'||c=='F' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='i'||c=='I' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽 else if( c=='t'||c=='T' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-3 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='i'||c=='I' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 return false;<br />聽 }</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽 /*****************************************************************************<br />聽聽 *<br />聽聽 * 澶т簬10240鐨勶紝姣忔璇?024鎴?048<br />聽聽 *<br />聽聽 * 灝忎簬10240鐨勶紝璇?0240涓嬈″嵆鍙?br />聽聽 *<br />聽聽 ****************************************************************************/<br />聽 private final String readPicture( File file )<br />聽 {<br />聽聽聽 try{ FileInputStream fis=new FileInputStream( file );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 //灝忎簬10K鐨勫拷鐣?br />聽聽聽聽聽聽聽聽 if( fis.available()<10240 )<br />聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽 return "";<br />聽聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 long num=0L;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 //Buffered鐨勯粯璁ゆ湁2048鍜?192</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 //*/ No.1<br />聽聽聽聽聽聽聽聽 byte[] buffer=new byte[10240];</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 if( fis.read( buffer )==10240 )<br />聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<10240; i++ )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽 //*/</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 /*/ No.3<br />聽聽聽聽聽聽聽聽 byte[] buffer=new byte[5120];</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 for( int j=0; j<2; j++ )<br />聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 if( fis.read( buffer )==5120 )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<5120; i++ )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽 //*/</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 /*/ No.2<br />聽聽聽聽聽聽聽聽 byte[] buffer=new byte[2048];</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 for( int j=0; j<5; j++ )<br />聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 if( fis.read( buffer )==2048 )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<2048; i++ )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽 //*/</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 /*/ No.4<br />聽聽聽聽聽聽聽聽 byte[] buffer=new byte[1024];</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 for( int j=0; j<10; j++ )<br />聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 if( fis.read( buffer )==1024 )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<1024; i++ )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽 //*/</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 fis.close();<br />聽聽聽聽聽聽 }<br />聽聽聽聽 catch( FileNotFoundException fnfe )<br />聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽 fnfe.printStackTrace();<br />聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽 catch( IOException ioe )<br />聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽 ioe.printStackTrace();<br />聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽 catch( Exception e )<br />聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();<br />聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽 return "";<br />聽 }</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽 /*****************************************************************************<br />聽聽 *<br />聽聽 * 涓誨嚱鏁板叆鍙?br />聽聽 *<br />聽聽 ****************************************************************************/<br />聽 public static void main( String[] args )<br />聽 {<br />聽聽聽 try{ long begin=System.currentTimeMillis();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 ReadFaster rf=new ReadFaster();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 System.out.println( "鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );<br />聽聽聽聽聽聽 }<br />聽聽聽 catch( Exception e )<br />聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();<br />聽聽聽聽聽聽聽聽 }<br />聽 }<br />}</font> </p> <img src ="http://m.tkk7.com/needjava/aggbug/145663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/needjava/" target="_blank">NeedJava</a> 2007-09-17 01:02 <a href="http://m.tkk7.com/needjava/archive/2007/09/17/145663.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆擩ava銆曚腑鏂囧彉閲?/title><link>http://m.tkk7.com/needjava/archive/2007/09/16/145636.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Sun, 16 Sep 2007 13:42:00 GMT</pubDate><guid>http://m.tkk7.com/needjava/archive/2007/09/16/145636.html</guid><wfw:comment>http://m.tkk7.com/needjava/comments/145636.html</wfw:comment><comments>http://m.tkk7.com/needjava/archive/2007/09/16/145636.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://m.tkk7.com/needjava/comments/commentRss/145636.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/needjava/services/trackbacks/145636.html</trackback:ping><description><![CDATA[ <font face="Courier New"> <font size="2"> <font color="#808080">public class 緇堢粨鑰?br />{<br />聽 public static void main( String[] args )<br />聽 {<br />聽聽聽 for( int 緇堢粨鑰?1; 緇堢粨鑰?lt;=100; 緇堢粨鑰?+ )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 System.out.println( 緇堢粨鑰?);<br />聽聽聽聽聽聽 }<br />聽 }<br />} <br /><br /></font> <font color="#808080">娉ㄦ剰錛屼笉鏄墍鏈夌殑涓枃閮芥敮鎸併?<br /><br />浣犳槸涓嶆槸鎯沖埌浜嗘販娣嗭紵錛燂紵榪欏彲涓嶆槸鏄撹璦錛屽懙鍛點?br /><br /></font> </font> </font> <img src ="http://m.tkk7.com/needjava/aggbug/145636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/needjava/" target="_blank">NeedJava</a> 2007-09-16 21:42 <a href="http://m.tkk7.com/needjava/archive/2007/09/16/145636.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆擩ava銆曟瘮杈冭祴鍊間笌System.arraycopy璋佸揩http://m.tkk7.com/needjava/archive/2007/09/16/145513.htmlNeedJavaNeedJavaSun, 16 Sep 2007 05:42:00 GMThttp://m.tkk7.com/needjava/archive/2007/09/16/145513.htmlhttp://m.tkk7.com/needjava/comments/145513.htmlhttp://m.tkk7.com/needjava/archive/2007/09/16/145513.html#Feedback7http://m.tkk7.com/needjava/comments/commentRss/145513.htmlhttp://m.tkk7.com/needjava/services/trackbacks/145513.html /*******************************************************************************
聽*
聽* 姣旇緝璧嬪間笌System.arraycopy璋佸揩
聽*
聽* 澶嶅埗鐨勫唴瀹硅秺澶氾紝System.arraycopy浼樺娍鏇存槑鏄?br />聽*
聽* Author: NeedJava
聽*
聽* Modified: 2007.09.16
聽*
聽******************************************************************************/
public final class WhoFaster
{
聽 public static void main( String[] args )
聽 {
聽聽聽 /*/
聽聽聽 int begin=100;

聽聽聽 int length=12;

聽聽聽 String temp="12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890";

聽聽聽 int times=10000000;聽 //鍗冧竾
聽聽聽 /*/
聽聽聽 int begin=100;

聽聽聽 int length=120;

聽聽聽 String temp="12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890";

聽聽聽 int times=1000000;聽 //鐧句竾
聽聽聽 //*/

聽聽聽 char[] oldArray=temp.toCharArray();

聽聽聽 char[] newArray=null;

聽聽聽 long start=0L;


聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // 鍗曠函璧嬪?br />聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 newArray=new char[length];

聽聽聽 start=System.currentTimeMillis();

聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 for( int j=0; j<length; j++ )
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 newArray[j]=oldArray[begin+j];
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽 }

聽聽聽 System.out.println( new String( newArray )+"銆"+( System.currentTimeMillis()-start ) );


聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // System.arraycopy
聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 newArray=new char[length];

聽聽聽 start=System.currentTimeMillis();

聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 System.arraycopy( oldArray, begin, newArray, 0, length );
聽聽聽聽聽聽 }

聽聽聽 System.out.println( new String( newArray )+"銆"+( System.currentTimeMillis()-start ) );
聽 }
}



NeedJava 2007-09-16 13:42 鍙戣〃璇勮
]]>
銆擩ava銆曞鏁板瓧鎴栨枃浠跺悕鎺掑垪http://m.tkk7.com/needjava/archive/2007/09/14/145003.htmlNeedJavaNeedJavaThu, 13 Sep 2007 16:17:00 GMThttp://m.tkk7.com/needjava/archive/2007/09/14/145003.htmlhttp://m.tkk7.com/needjava/comments/145003.htmlhttp://m.tkk7.com/needjava/archive/2007/09/14/145003.html#Feedback0http://m.tkk7.com/needjava/comments/commentRss/145003.htmlhttp://m.tkk7.com/needjava/services/trackbacks/145003.html

/*******************************************************************************
聽*
聽* 瀵規暟瀛楁垨鏂囦歡鍚嶆帓鍒?br />聽*
聽* 娌℃湁鑰冭檻姹夊瓧鏄劇ず鏃跺崰涓や釜浣嶇疆鐨勬儏鍐碉紝鍗沖鏂囦歡鍚嶅鐞嗕笉澶ソ
聽*
聽* Author: NeedJava
聽*
聽* Modified: 2007.09.09
聽*
聽******************************************************************************/

public final class DotAlign
{
聽 private DotAlign(){}

聽 private static final String align( String string,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽char prefix,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 char suffix,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int prefixLength,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int suffixLength,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽boolean isNumber )
聽 {
聽聽聽 if( string==null||string.equals( "" )||string.equals( "." )||prefixLength<0||suffixLength<0 )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 return string;
聽聽聽聽聽 }

聽聽聽 //濡傛灉娌℃湁灝忔暟錛岄偅涔堟寜鐓у父鐞嗭紝灝忔暟鐐逛篃搴旇鐪佺暐
聽聽聽 char[] buffer=new char[( suffixLength>0 ? prefixLength+1+suffixLength : prefixLength )];

聽聽聽 int stringLength=string.length();

聽聽聽 int dot=stringLength-1;

聽聽聽 //鎵懼埌灝忔暟鐐逛綅緗紝鍙互鐢╨astIndexOf()浠f浛
聽聽聽 while( dot>-1 )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 if( string.charAt( dot-- )=='.' )
聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dot++;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 }

聽聽聽 //System.out.print( Integer.toString( dot )+"\t" );

聽聽聽 //鈽呮暣鏁伴儴鍒嗭紝浠庡皬鏁扮偣宸︿綅鍚戝乏縐?br />聽聽聽 int pointer=( dot>-1 ? dot-1 : stringLength-1 );

聽聽聽 for( int i=prefixLength-1; i>-1; i-- )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 if( pointer>-1 )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 buffer[i]=string.charAt( pointer-- );
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 else{ buffer[i]=prefix;
聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽 }

聽聽聽 //濡傛灉娌℃湁灝忔暟閮ㄥ垎錛岄偅涔堟寜鐓у父鐞嗭紝灝忔暟鐐瑰簲璇ョ渷鐣?br />聽聽聽 if( suffixLength>0 )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 //鈽呭皬鏁扮偣
聽聽聽聽聽聽聽 buffer[prefixLength]=( dot>-1||isNumber ? '.' : suffix );

聽聽聽聽聽聽聽 //鈽呭皬鏁伴儴鍒嗭紝浠庡皬鏁扮偣鍙充綅鍚戝彸縐?br />聽聽聽聽聽聽聽 pointer=( dot>-1 ? dot+1 : stringLength );

聽聽聽聽聽聽聽 for( int i=prefixLength+1; i<buffer.length; i++ )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 if( pointer<stringLength )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 buffer[i]=string.charAt( pointer++ );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 else{ buffer[i]=suffix;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽 }

聽聽聽 return new String( buffer );
聽 }


聽 public final static void main( String[] args )
聽 {
聽聽聽 System.out.println( "\r\n-------------------------------------------\r\n" );

聽聽聽 String[] number={ "",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".5",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".56",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".567",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".5678",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.5",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.56",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.567",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.5678" };

聽聽聽 for( int i=0; i<number.length; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 System.out.println( "["+DotAlign.align( number[i], ' ', '0', 7, 2, true )+"]聽聽 ["+number[i]+"]" );
聽聽聽聽聽聽 }

聽聽聽 System.out.println( "\r\n-------------------------------------------\r\n" );

聽聽聽 String[] file={ "",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".j",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".jp",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".jpe",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".jpeg",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.j",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.jp",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.jpe",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.jpeg" };

聽聽聽 for( int i=0; i<file.length; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 System.out.println( "["+DotAlign.align( file[i], ' ', ' ', 7, 5, false )+"]聽聽 ["+file[i]+"]" );
聽聽聽聽聽聽 }

聽聽聽 System.out.println( "\r\n-------------------------------------------\r\n" );
聽 }
}



NeedJava 2007-09-14 00:17 鍙戣〃璇勮
]]>
銆擩ava銆曘擲WT銆曞垎鏋怰SSOwl濡備綍鍋氬埌鍙繍琛屼竴涓疄渚嬶紝騫朵笖鍙互嬋媧?/title><link>http://m.tkk7.com/needjava/archive/2007/09/01/141959.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Sat, 01 Sep 2007 09:03:00 GMT</pubDate><guid>http://m.tkk7.com/needjava/archive/2007/09/01/141959.html</guid><wfw:comment>http://m.tkk7.com/needjava/comments/141959.html</wfw:comment><comments>http://m.tkk7.com/needjava/archive/2007/09/01/141959.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/needjava/comments/commentRss/141959.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/needjava/services/trackbacks/141959.html</trackback:ping><description><![CDATA[ <p> <font face="Courier New" color="#808080" size="2">鍓嶅嚑澶╄嚜宸卞彂琛ㄧ殑鍙繍琛屼竴涓疄渚嬬殑鏂囩珷錛屾劅璋ande鐨勭暀鎰忥紝騫舵彁鍑哄疂璐墊剰瑙侊紝浠栨帹鑽愮殑姝eソ鏄垜鎯蟲壘鐨凴SSOwl婧愮爜錛屼互涓嬫槸鎴戝垎鏋怰SSOwl濡備綍鍋氬埌鍙繍琛屼竴涓疄渚嬪茍涓旀縺媧葷殑錛屽鏈夐敊璇紝璇鋒媿鐮栥?br /></font> <a > <br /> </a> </p> <p> <a > <font face="Courier New" color="#808080" size="2">http://sourceforge.krugle.com/kse/files/cvs/cvs.sourceforge.net/rssowl/RSSOwl/src/java/net/sourceforge/rssowl/controller/RSSOwlLoader.java</font> </a> </p> <p> <font face="Courier New" color="#808080" size="2">鏍規嵁 RSSOwlLoader.java 涓殑</font> </p> <p> <font face="Courier New" color="#808080" size="2">[code]<br />private static void startupProcess( String[] args )<br />{ <br />聽 ...</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 if( !System.getProperties().containsKey( PROPERTY_ALLOW_MULTI_INSTANCES )&&<font color="#ff0000">StartupManager.isRSSOwlRunning( feedArgument )</font> )</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 ...</font> </p> <p> <font face="Courier New" color="#808080" size="2">}<br />[/code]</font> </p> <p> <font face="Courier New" color="#808080" size="2">榪借釜鍒?StartupManager.java 瑙佷笅錛?/font> </p> <p> <a > <font face="Courier New" color="#808080" size="2">http://sourceforge.krugle.com/kse/files/cvs/cvs.sourceforge.net/rssowl/RSSOwl/src/java/net/sourceforge/rssowl/controller/thread/StartupManager.java</font> </a> </p> <p> <font face="Courier New" color="#808080" size="2">榪借釜鍒?StartupManager.isRSSOwlRunning( String message ) 鐢ㄩ斾負寤虹珛ServerSocket錛岀洃鍚湰鍦?794绔彛</font> </p> <p> <font face="Courier New" color="#808080" size="2">[code]<br />static ServerSocket applLockSocket;</font> </p> <p> <font face="Courier New" color="#808080" size="2">public static boolean isRSSOwlRunning( String message )<br />{ </font> </p> <p> <font face="Courier New" color="#ff0000" size="2">聽 try{ applLockSocket=new ServerSocket( 8794, 50, InetAddress.getByName( "127.0.0.1" ) );聽 //1987騫?鏈?鏃ュ嚭鐢燂紵</font> </p> <p> <font face="Courier New" color="#ff0000" size="2">聽聽聽聽聽聽 handleSocketUnBound();聽 //</font> </p> <p> <font face="Courier New" color="#808080" size="2"> <font color="#ff0000">聽聽聽聽聽聽 return false;<br /></font>聽聽聽聽 } <br />聽 catch( java.net.BindException e )聽聽聽 //Another instance already running<br />聽聽聽聽聽聽 { <br />聽聽聽聽聽聽聽聽 ...</font> </p> <p> <font face="Courier New" color="#ff0000" size="2">聽聽聽聽聽聽聽聽 handleSocketBound( message );聽 //</font> </p> <p> <font face="Courier New" color="#808080" size="2"> <font color="#ff0000">聽聽聽聽聽聽聽聽 return true;<br /></font>聽聽聽聽聽聽 }聽 <br />聽 catch( IOException e )聽 //Other Error<br />聽聽聽聽聽聽 { <br />聽聽聽聽聽聽聽聽 ...</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 return false;<br />聽聽聽聽聽聽 }<br />} <br />[/code]</font> </p> <p> <font face="Courier New" color="#808080" size="2">榪借釜鍒?StartupManager.handleSocketUnBound() 鍜?StartupManager.handleSocketBound( String message )</font> </p> <p> <font face="Courier New" color="#808080" size="2">[code]<br />private static void handleSocketBound( String message )<br />{<br />聽 Socket socket;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 try{ socket=new Socket( InetAddress.getByName( "127.0.0.1" ), 8794 );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽 PrintWriter writer=new PrintWriter( new OutputStreamWriter( socket.getOutputStream() ) );</font> </p> <p> <font face="Courier New" color="#ff0000" size="2">聽聽聽聽聽聽 writer.println( ( message!=null&&message.length()>0 ) ? message : DEFAULT_MESSAGE );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽 writer.flush();<br />聽聽聽聽 }<br />聽 catch( UnknownHostException e )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 ...<br />聽聽聽聽聽聽 }<br />聽 catch( IOException e )<br />聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽 ...<br />聽聽聽聽聽聽 }<br />}<br />[/code]<br /><br />[code]<br /></font> <font face="Courier New" color="#808080" size="2">/**<br />聽* Server not yet running. Start it and listen for incoming messages.<br />聽*/<br />private static void handleSocketUnBound()<br />{<br />聽 listen();聽 //杞悜錛屼負浜嗗縐板ソ鐪嬶紵榪樻槸涓轟簡鍏煎錛?br />}<br /><br /></font> <font face="Courier New" color="#808080" size="2">/**<br />聽* Listen for incoming messages.鐪嬬湅鎺ュ彈鐨勮繛鎺ュ彂閫佷簡浠涔堝唴瀹?br />聽*/<br />private static void listen()<br />{<br />聽 //Run the Server inside a Thread<br />聽 server=new ExtendedThread()聽 //extends from Thread<br />聽 {<br />聽聽聽 public void run()<br />聽聽聽 {<br />聽聽聽聽聽 while( !isStopped()&&!isInterrupted() )<br />聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽 BufferedReader buffReader=null;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽 try{ //Read a single line from the Socket<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Socket socket=applLockSocket.accept();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 buffReader=new BufferedReader( new InputStreamReader( socket.getInputStream() ) );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 final String message=buffReader.readLine();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 socket.close();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Check the received message<br /><font color="#ff0000">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( ( message!=null&&message.length()>0 )&&GUI.display!=null&&!GUI.display.isDisposed() )聽 //嬋媧繪煇涓狦UI鐨勪唬鐮佸湪姝わ紝鎴戜滑榪涘幓鐪嬬湅<br /></font>聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 GUI.display.asyncExec( new Runnable()<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 public void run()<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Restore the RSSOwl Window and handle Message<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( GUI.isAlive() )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br /><font color="#ff0000">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 GUI.rssOwlGui.restoreWindow();聽 //鎵懼埌浜嗭紝杞埌GUI.java</font></font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Handle the message as Link if valid argument<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( RSSOwlLoader.isValidArgument( message ) )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 GUI.rssOwlGui.getEventManager().actionHandleSuppliedLink( message );<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 } );<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽 catch( IOException e )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ...<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽 finally{ //鍏抽棴嫻?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽 }<br />聽 };</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 server.setDaemon( true );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 server.setName( "Startup Manager Thread" );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽 server.start();<br />}<br />[/code]</font> </p> <p> <font face="Courier New" color="#808080" size="2">榪借釜鍒?GUI.java 瑙佷笅錛?/font> </p> <p> <a > <font face="Courier New" color="#808080" size="2">http://sourceforge.krugle.com/kse/files/cvs/cvs.sourceforge.net/rssowl/RSSOwl/src/java/net/sourceforge/rssowl/controller/GUI.java</font> </a> </p> <p> <font face="Courier New" color="#808080" size="2">榪借釜鍒癎UI.restoreWindow()</font> </p> <p> <font face="Courier New" color="#808080" size="2">[code]<br />/**<br />聽* Restore the application window either from taskbar or the tray.<br />聽*/<br />public void restoreWindow()<br />{<br />聽 //RSSOwl is minimized to Tray<br />聽 if( GlobalSettings.useSystemTray()&&rssOwlSystray!=null&&rssOwlSystray.isMinimizedToTray() )<br />聽聽聽 {<br />聽聽聽聽聽 rssOwlSystray.restoreWindow();<br />聽聽聽 }<br />聽 else{ //RSSOwl is not active<br /><font color="#ff0000">聽聽聽聽聽聽聽 shell.forceActive();聽 //灝辨槸瀹冧簡</font></font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽 shell.setMinimized( false );<br />聽聽聽聽聽 }<br />}<br />[/code]</font> </p> <p> <font size="2"> <font face="Courier New" color="#808080">鍘熺悊濡備笅錛?<br /><br /><font color="#808080">鍦ㄦ湰鍦?794绔彛寤虹珛鏈嶅姟鐩戝惉錛屽茍涓斾竴鐩寸洃鍚绔彛錛岃瘯鍥炬帴鍙楁绔彛鍏跺畠瀹炰緥錛堝叾瀹冪▼搴忥紵錛夊彂閫佺殑杈撳叆 <br /><br />濡傛灉璇誨埌鏁版嵁錛堝ソ鍍忔病鏈夊垽鏂暟鎹殑鍚堟硶鎬э紝浠呬粎鍒ゆ柇鏁版嵁涓嶄負絀猴級錛屽茍涓旇嚜宸變笉鏄滄縺媧燴濈姸鎬侊紝灝扁滄縺媧燴濊嚜宸憋紱 <br /><br />濡傛灉寤虹珛鏈嶅姟鐩戝惉涓嶆垚鍔燂紝璇存槑宸茬粡鏈夊疄渚嬶紙鍏跺畠紼嬪簭錛燂級鍗犵敤姝ょ鍙d簡錛屽悜姝ょ鍙e彂閫佹暟鎹敜閱掑墠涓涓疄渚嬶紝鍋滃嚑縐掍互渚垮墠涓涓疄渚嬫帴鍙楋紝鐒跺悗閫鍑恒?<br /><br />紼嬪簭鐢ㄧ殑鏄疭WT錛屾縺媧繪柟娉曠敤鐨勬槸shell.forceActive()錛宐ut it's not good for core java. <br /><br />浠ヤ笂鍒嗘瀽濡傛湁涓嶅錛屾伋璇鋒枾姝c?/font></font> <font color="#808080"> </font> </font> </p> <p> <br /> <br /> <font face="Courier New" color="#808080" size="2">聽 </font> </p> <img src ="http://m.tkk7.com/needjava/aggbug/141959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/needjava/" target="_blank">NeedJava</a> 2007-09-01 17:03 <a href="http://m.tkk7.com/needjava/archive/2007/09/01/141959.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆擩ava銆曞彧榪愯涓涓疄渚嬶紙浣跨敤System.setErr()閲嶅畾鍚戯級http://m.tkk7.com/needjava/archive/2007/08/29/141106.htmlNeedJavaNeedJavaWed, 29 Aug 2007 14:11:00 GMThttp://m.tkk7.com/needjava/archive/2007/08/29/141106.htmlhttp://m.tkk7.com/needjava/comments/141106.htmlhttp://m.tkk7.com/needjava/archive/2007/08/29/141106.html#Feedback8http://m.tkk7.com/needjava/comments/commentRss/141106.htmlhttp://m.tkk7.com/needjava/services/trackbacks/141106.html 濡備綍鍙繍琛屼竴涓疄渚嬶紝緗戜笂鏈変笁縐嶆柟娉曪紙鍗曟ā寮忎笉綆楋級錛?br />
1銆佸崰鐢ㄧ鍙o紙鏈夋晥錛屼絾鏄湁绔彛琚尓鐢ㄧ殑緙洪櫡錛?br />
2銆佹鏌ユ枃浠舵槸鍚﹀瓨鍦紙鏈夋晥錛屼絾紿佺劧鍋滄満鍙兘鏈夐棶棰橈級

3銆佷嬌鐢↗NI錛堟湁鏁堬紝浣嗕撫澶卞彲縐繪鎬э級

鎴戝啓鐨勫拰絎簩涓師鐞嗗樊涓嶅錛屽垽鏂煇涓枃浠舵槸鍚﹁鍗犵敤錛屽茍涓旀垜鎶婅褰曟棩蹇椼佷繚瀛樻棩蹇椼佸垽鏂槸鍚﹁繍琛屾斁鍦ㄤ竴璧楓?br />
浣犲彲浠ヨ漿杞芥湰Blog錛屼絾鏄笉鑳界鏀逛綔鑰呭悕縐般?br />

import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;

import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;

import javax.swing.JFrame;


/*******************************************************************************
聽*
聽* 鍙繍琛屼竴涓疄渚?br />聽*
聽* Just single instance
聽*
聽*
聽* Author: NeedJava
聽*
聽* Modified: 2007.08.29
聽*
聽*
聽* 浣犲彲浠ヤ嬌鐢ㄦ紼嬪簭浜庝換浣曞湴鏂癸紝浣嗚淇濈暀紼嬪簭浣滆呭強娉ㄩ噴鐨勫畬鏁淬傚鏋滀綘鏀硅繘浜嗙▼搴忥紝
聽*
聽* 璇峰湪鍘熶綔鑰呭悗娣誨姞濮撳悕錛屽錛欰uthor: NeedJava/Jack/Mike錛岀増鏈強淇敼鏃墮棿鍚岀悊銆?br />聽*
聽******************************************************************************/
public final class SingleInstance
{
聽 /*****************************************************************************
聽聽 *
聽聽 * 鏋勯犲嚱鏁?br />聽聽 *
聽聽 ****************************************************************************/
聽 private SingleInstance()
聽 {
聽聽聽 this( "vab", ".vab", "vab" );
聽 }


聽 public SingleInstance( String filePrefixName, String fileSuffixName, String directoryName )
聽 {
聽聽聽 this.init( filePrefixName, fileSuffixName, directoryName );
聽 }


聽 /*****************************************************************************
聽聽 *
聽聽 * 鍘熺悊錛?br />聽聽 *
聽聽 * 鐢ㄩ噸瀹氬悜灝嗘爣鍑嗛敊璇緭鍑烘祦瀹氬悜鍒頒竴涓棩蹇楁枃浠訛紝鍗犵敤瀹冿紝浣垮叾涓嶈兘琚垹闄?br />聽聽 *
聽聽 * 浠ュ悗鐨勫疄渚嬭瘯鍥懼皢瀛樺湪鐨勬鏃ュ織鏂囦歡鏀瑰悕騫朵笖鍙﹀瓨涓烘煇涓枃浠跺す涓?br />聽聽 *
聽聽 * 濡傛灉鎴愬姛錛岃鏄庢病鏈夌▼搴忓崰鐢ㄥ畠錛堜笉鎺掗櫎浣犲湪鐢ㄥ畠錛岀己闄鳳紵錛夛紝姝eソ淇濆瓨鏃ュ織
聽聽 *
聽聽 * 濡傛灉涓嶆垚鍔燂紝閫鍑恒乺enameTo鍛戒護鏈変竴綆弻闆曠殑浣滅敤
聽聽 *
聽聽 ****************************************************************************/
聽 private final void init( String filePrefixName, String fileSuffixName, String directoryName )
聽 {
聽聽聽 if( filePrefixName==null||fileSuffixName==null||directoryName==null )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 exitWithWarning( "Error: Invalid file name.", 10 );
聽聽聽聽聽 }

聽聽聽 //We need check the fileSuffixName here? From the tail?

聽聽聽 String fileName=filePrefixName+fileSuffixName;

聽聽聽 try{ File error=new File( fileName );

聽聽聽聽聽聽聽聽 if( error.exists() )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 File directory=new File( directoryName );

聽聽聽聽聽聽聽聽聽聽聽聽 String newFileName=directoryName+File.separator+convertMillisecond2DateTime( error.lastModified() )+fileSuffixName;

聽聽聽聽聽聽聽聽聽聽聽聽 //System.out.println( newFileName );

聽聽聽聽聽聽聽聽聽聽聽聽 if( directory.exists() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( directory.isDirectory() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //renameTo涔熸槸濂戒笢涓滐紝鏃㈠彲浠ユ敼鍚嶏紝榪樺彲浠ョЩ鏂囦歡
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( !error.renameTo( new File( newFileName ) ) )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exitWithWarning( "Error: The instance already exists, I will exit.", 11 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else{ exitWithWarning( "Error: The \'"+directoryName+"\' is not a valid directory.", 21 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 else{ if( directory.mkdirs() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //renameTo涔熸槸濂戒笢涓滐紝鏃㈠彲浠ユ敼鍚嶏紝榪樺彲浠ョЩ鏂囦歡
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( !error.renameTo( new File( newFileName ) ) )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exitWithWarning( "Error: The instance already exists, I will exit.", 11 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else{ exitWithWarning( "Error: Failed to create the \'"+directoryName+"\' directory.", 22 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽 //閲嶅畾鍚戞爣鍑嗛敊璇緭鍑烘祦錛屾墍鏈夊姛鑳藉叏闈犲畠銆傛潵錛屽暤涓涓?br />聽聽聽聽聽聽聽聽 System.setErr( new PrintStream( new FileOutputStream( fileName ) ) );
聽聽聽聽聽聽 }
聽聽聽 catch( FileNotFoundException fnfe )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 //fnfe.printStackTrace();

聽聽聽聽聽聽聽聽聽聽 exitWithWarning( fnfe.toString(), 23 );
聽聽聽聽聽聽聽聽 }
聽聽聽 catch( IOException ioe )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 //ioe.printStackTrace();

聽聽聽聽聽聽聽聽聽聽 exitWithWarning( ioe.toString(), 29 );
聽聽聽聽聽聽聽聽 }
聽聽聽 catch( Exception e )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 //e.printStackTrace();

聽聽聽聽聽聽聽聽聽聽 exitWithWarning( e.toString(), 99 );
聽聽聽聽聽聽聽聽 }
聽 }


聽 /*****************************************************************************
聽聽 *
聽聽 * You can change the milliseconds to the date and time string here
聽聽 *
聽聽 * I just return the original
聽聽 *
聽聽 * Don't get the same string :)
聽聽 *
聽聽 ****************************************************************************/
聽 private final String convertMillisecond2DateTime( long millisecond )
聽 {
聽聽聽 return ""+millisecond;
聽 }


聽 /*****************************************************************************
聽聽 *
聽聽 * Return the warning and the exit code, then exit the application
聽聽 *
聽聽 ****************************************************************************/
聽 private final void exitWithWarning( String warning, int code )
聽 {
聽聽聽 System.out.println( warning==null ? "" : warning );

聽聽聽 System.exit( code );
聽 }


聽 /*****************************************************************************
聽聽 *
聽聽 * 涓誨嚱鏁板叆鍙?br />聽聽 *
聽聽 ****************************************************************************/
聽 public final static void main( String[] args )
聽 {
聽聽聽 SingleInstance si=new SingleInstance( "error", ".txt", "error" );

聽聽聽 final JFrame frame=new JFrame( "Just single instance. By NeedJava. 2007.08.29" );

聽聽聽 //I stay here, to make some friends happy.
聽聽聽 frame.addWindowListener( new WindowAdapter()
聽聽聽 {
聽聽聽聽聽 public void windowClosing( WindowEvent we )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 frame.dispose();

聽聽聽聽聽聽聽 System.exit( 0 );
聽聽聽聽聽 }
聽聽聽 } );

聽聽聽 frame.setBounds( 200, 200, 700, 70 );

聽聽聽 frame.setVisible( true );
聽 }
}



NeedJava 2007-08-29 22:11 鍙戣〃璇勮
]]>
銆擩ava銆曞緟閫夋Swinghttp://m.tkk7.com/needjava/archive/2007/07/08/128927.htmlNeedJavaNeedJavaSun, 08 Jul 2007 14:03:00 GMThttp://m.tkk7.com/needjava/archive/2007/07/08/128927.htmlhttp://m.tkk7.com/needjava/comments/128927.htmlhttp://m.tkk7.com/needjava/archive/2007/07/08/128927.html#Feedback0http://m.tkk7.com/needjava/comments/commentRss/128927.htmlhttp://m.tkk7.com/needjava/services/trackbacks/128927.html import java.awt.Font;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;

import java.util.ArrayList;
import java.util.Enumeration;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JComboBox;
import javax.swing.UIManager;
import javax.swing.JSplitPane;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

/*********************************************************************
聽*
聽*
聽* TableChooser.java
聽*
聽* Last modified: 2005-04-26
聽*
聽* Author: NeedJava
聽*
聽* E-Mail:
needjava@126.com
聽*
聽* Address: HeFei-AnHui-China
聽*
聽* Bug: 濡傛灉閫変腑琛屽ご鎷栧姩錛屼細鍙戠幇琛ㄤ綋涓嶄細璺熺潃鎷栧姩錛岄櫎闈炰綘鎷栧姩琛ㄤ綋
聽*
聽* If you fixed this bug, please let us know, Thanks a lot.
聽*
聽*
聽*********************************************************************/
class TableChooser extends JFrame
{
聽 private final boolean horizontal;

聽 private String[] tableTitle;
聽 private ArrayList primaryBody;
聽 private ArrayList prepareBody;
聽 private ArrayList selectBody;

聽 private ShowTableModel prepareModel;
聽 private ShowTableModel selectModel;
聽 private final RowHeaderModel prepareRowHeaderModel;
聽 private final RowHeaderModel selectRowHeaderModel;

聽 private final JTable prepareTable;
聽 private final JTable selectTable;
聽 private final JTable prepareRowHeaderTable;
聽 private final JTable selectRowHeaderTable;

聽 private final static int rowHeight=18;

聽 private final JScrollPane prepareTableJSP;
聽 private final JScrollPane selectTableJSP;

聽 private final JPanel prepareTablePanel;
聽 private final JPanel selectTablePanel;

聽 private final JSplitPane splitPane;


聽 /**
聽聽 *
聽聽 * 鏋勯犲嚱鏁?br />聽聽 *
聽聽 */
聽 public TableChooser( boolean horizontal )
聽 {
聽聽聽 this.horizontal=horizontal;

聽聽聽 //璁劇疆紼嬪簭鏍囬鏍?br />聽聽聽 this.setTitle( "閫夋嫨妗? );

聽聽聽 //涓嶇粰鏈澶у寲
聽聽聽 //this.setResizable( false );

聽聽聽 //璁劇疆紼嬪簭鐣岄潰澶у皬
聽聽聽 this.setSize( new Dimension( 500, 400 ) );

聽聽聽 //灝嗙▼搴忓眳涓斁緗紙鏂規硶1錛?br />聽聽聽 Dimension paneSize=this.getSize();
聽聽聽 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
聽聽聽 this.setLocation( ( screenSize.width-paneSize.width )/2, ( screenSize.height-paneSize.height )/2 );

聽聽聽 //灝嗙▼搴忓眳涓斁緗紙鏂規硶2錛?br />聽聽聽 //this.setLocationRelativeTo( null );

聽聽聽 //璁劇疆紼嬪簭鍏抽棴鐨勭被鍨嬶紝闃叉鍏抽棴
聽聽聽 this.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );

聽聽聽 //璁劇疆鍏抽棴紼嬪簭
聽聽聽 this.addWindowListener( new WindowAdapter()
聽聽聽 {
聽聽聽聽聽 public void windowClosing( WindowEvent e )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 closeApplication();
聽聽聽聽聽 }
聽聽聽 } );


聽聽聽 //////////////////////////////
聽聽聽 prepareTable=new JTable();
聽聽聽 selectTable=new JTable();


聽聽聽 //涓哄緟閫夈佸凡閫夎〃鏍艱緗璁劇殑緇樺埗鍣?br />聽聽聽 ShowTableRenderer ShowTableRenderer=new ShowTableRenderer();
聽聽聽 prepareTable.setDefaultRenderer( Object.class, ShowTableRenderer );
聽聽聽 selectTable.setDefaultRenderer( Object.class, ShowTableRenderer );


聽聽聽 //璁劇疆鏄惁鍙互鎷栧姩琛ㄥご
聽聽聽 prepareTable.getTableHeader().setReorderingAllowed( false );
聽聽聽 selectTable.getTableHeader().setReorderingAllowed( false );


聽聽聽 //璁劇疆琛岄珮
聽聽聽 prepareTable.setRowHeight( rowHeight );
聽聽聽 selectTable.setRowHeight( rowHeight );


聽聽聽 //////////////////////////////
聽聽聽 prepareRowHeaderModel=new RowHeaderModel( 0, 1 );
聽聽聽 selectRowHeaderModel=new RowHeaderModel( 0, 1 );


聽聽聽 prepareRowHeaderTable=new JTable( prepareRowHeaderModel );
聽聽聽 selectRowHeaderTable=new JTable( selectRowHeaderModel );


聽聽聽 //涓簉owHeaderTable璁劇疆棰勮鐨勭粯鍒跺櫒
聽聽聽 prepareRowHeaderTable.setDefaultRenderer( Object.class, new RowHeaderRenderer( prepareTable ) );
聽聽聽 selectRowHeaderTable.setDefaultRenderer( Object.class, new RowHeaderRenderer( selectTable ) );


聽聽聽 //灝唕owHeaderTable鍥哄畾瀹藉害
聽聽聽 prepareRowHeaderTable.setPreferredScrollableViewportSize( new Dimension( 50, 0 ) );
聽聽聽 selectRowHeaderTable.setPreferredScrollableViewportSize( new Dimension( 50, 0 ) );


聽聽聽 //璁劇疆琛岄珮
聽聽聽 prepareRowHeaderTable.setRowHeight( rowHeight );
聽聽聽 selectRowHeaderTable.setRowHeight( rowHeight );


聽聽聽 //闃叉鍗曞厓鏍兼湁緙濋殭
聽聽聽 prepareRowHeaderTable.setIntercellSpacing( new Dimension( 0, 0 ) );
聽聽聽 selectRowHeaderTable.setIntercellSpacing( new Dimension( 0, 0 ) );


聽聽聽 //鍏辯敤鍚屼竴涓狶istSelectionModel錛屼嬌涓よ竟鐨勬煇琛屽悓鏃墮変腑
聽聽聽 prepareRowHeaderTable.setSelectionModel( prepareTable.getSelectionModel() );
聽聽聽 selectRowHeaderTable.setSelectionModel( selectTable.getSelectionModel() );


聽聽聽 //////////////////////////////
聽聽聽 prepareTableJSP=new JScrollPane( prepareTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
聽聽聽 selectTableJSP=new JScrollPane( selectTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );


聽聽聽 //灝唕owHeaderTable浣滀負row header鍔犲叆JScrollPane鐨凴owHeaderView鍖哄煙
聽聽聽 prepareTableJSP.setRowHeaderView( prepareRowHeaderTable );
聽聽聽 selectTableJSP.setRowHeaderView( selectRowHeaderTable );


聽聽聽 //宸︿笂瑙掍慨楗?br />聽聽聽 prepareTableJSP.setCorner( JScrollPane.UPPER_LEFT_CORNER, new RowHeaderCorner( prepareTable, "鍏ㄩ? ) );
聽聽聽 selectTableJSP.setCorner( JScrollPane.UPPER_LEFT_CORNER, new RowHeaderCorner( selectTable, "鍏ㄩ? ) );


聽聽聽 //////////////////////////////
聽聽聽 prepareTablePanel=new JPanel();
聽聽聽 selectTablePanel=new JPanel();


聽聽聽 prepareTablePanel.setLayout( new BorderLayout() );
聽聽聽 selectTablePanel.setLayout( new BorderLayout() );


聽聽聽 prepareTablePanel.add( prepareTableJSP, BorderLayout.CENTER );
聽聽聽 selectTablePanel.add( selectTableJSP, BorderLayout.CENTER );


聽聽聽 prepareTablePanel.setBorder( new TitledBorder( new EtchedBorder( EtchedBorder.LOWERED ), "寰呴変漢鍛? ) );
聽聽聽 selectTablePanel.setBorder( new TitledBorder( new EtchedBorder( EtchedBorder.LOWERED ), "宸查変漢鍛? ) );


聽聽聽 //鑷沖皯鏄劇ず6琛?br />聽聽聽 prepareTablePanel.setMinimumSize( new Dimension( 200, 150 ) );
聽聽聽 selectTablePanel.setMinimumSize( new Dimension( 200, 150 ) );


聽聽聽 //////////////////////////////
聽聽聽 if( horizontal )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 splitPane=new JSplitPane( JSplitPane.HORIZONTAL_SPLIT, prepareTablePanel, selectTablePanel );
聽聽聽聽聽 }
聽聽聽 else{ splitPane=new JSplitPane( JSplitPane.VERTICAL_SPLIT, prepareTablePanel, selectTablePanel );
聽聽聽聽聽聽聽 }


聽聽聽 //鎷栧姩鏃舵樉紺虹獥鍙o紝鍚﹀垯鍙樉紺烘嫋鍔ㄧ殑杈規
聽聽聽 splitPane.setContinuousLayout( true );

聽聽聽 //鍙互鐐逛笁瑙掑艦鍥炬爣鍙樉紺轟竴涓尯鍩?br />聽聽聽 splitPane.setOneTouchExpandable( true );

聽聽聽 splitPane.setDividerLocation( 210 );

聽聽聽 //鏀懼ソ涓昏闈㈡澘
聽聽聽 this.getContentPane().add( splitPane, BorderLayout.CENTER );


聽聽聽 getTableModel();
聽 }

聽 /**
聽聽 *
聽聽 * 寰楀埌鍘熷鐨凾ableModel
聽聽 *
聽聽 */
聽 private final void getTableModel()
聽 {
聽聽聽 tableTitle=new String[]{ "鏄惁閫夋嫨", "鏍囧彿" };
聽聽聽 primaryBody=new ArrayList();
聽聽聽 prepareBody=new ArrayList();
聽聽聽 selectBody=new ArrayList();

聽聽聽 for( int i=1; i<21; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 Object[] row=new Object[2];

聽聽聽聽聽聽聽聽 row[0]=Boolean.FALSE;聽 //絎竴鍒椾負鍒ゆ柇鐢ㄧ殑甯冨皵鍊鹼紝涔熷彲new Boolean( false )

聽聽聽聽聽聽聽聽 row[1]=new Double( i );

聽聽聽聽聽聽聽聽 primaryBody.add( row );聽 //涓琛屾悶濂藉悗錛屽鍔犺繘ArrayList涓?br />聽聽聽聽聽聽聽聽 prepareBody.add( row );聽 //灝嗗緟閫夊唴瀹瑰垵濮嬩負鍘熷琛ㄦ牸
聽聽聽聽聽聽 }


聽聽聽 ////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // 灝嗘暟鎹牴鎹渶姹傚垏鍒?br />聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////
聽聽聽 prepareModel=new ShowTableModel( prepareBody, tableTitle )
聽聽聽 {
聽聽聽聽聽 public void setValueAt( Object value, int row, int col )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 super.setValueAt( value, row, col );聽 //闇瑕佽鐖舵潵璧嬪?/font>

聽聽聽聽聽聽聽 Object rowObj = prepareBody.get( row );聽聽聽聽聽聽聽 //寰楀埌涓昏〃鐨勯偅琛屽唴瀹?br />聽聽聽聽聽聽聽 int whichRow聽 = selectBody.indexOf( rowObj );聽 //鏌ユ壘嬈¤〃鏈夋病鏈夌浉鍚岀殑閭h璁板綍

聽聽聽聽聽聽聽 if( this.getValueAt( row, col ).equals( Boolean.TRUE ) )聽 //濡傛灉姝よ璁板綍鐨勯鍒楀唴瀹逛負閫夋嫨
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 if( whichRow<0 )聽 //闃叉嬈¤〃澶氭澧炲姞閭h鍐呭
聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 selectBody.add( rowObj );
聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 else{ if( whichRow>=0 )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 selectBody.remove( whichRow );聽 //濡傛灉棣栧垪涓哄彇娑堥夋嫨錛岄偅涔堟琛ㄥ垹闄ら偅琛岃褰?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 this.fireTableDataChanged();聽聽聽聽聽聽聽聽 //閫氬憡涓昏〃緇撴瀯鍙樺寲
聽聽聽聽聽聽聽 selectModel.fireTableDataChanged();聽 //閫氬憡嬈¤〃緇撴瀯鍙樺寲

聽聽聽聽聽聽聽 selectRowHeaderModel.setRowCount( selectBody.size() );聽 //璁╂琛ㄨ澶磋窡鐫嬈¤〃琛屾暟鍙樺寲
聽聽聽聽聽 }
聽聽聽 };
聽聽聽 prepareTable.setModel( prepareModel );


聽聽聽 selectModel=new ShowTableModel( selectBody, tableTitle )
聽聽聽 {
聽聽聽聽聽 public void setValueAt( Object value, int row, int col )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 super.setValueAt( value, row, col );聽 //闇瑕佽鐖舵潵璧嬪?/font>

聽聽聽聽聽聽聽 if( this.getValueAt( row, col ).equals( Boolean.FALSE ) )
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 selectBody.remove( row );
聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 prepareModel.fireTableDataChanged();聽 //閫氬憡涓昏〃緇撴瀯鍙樺寲
聽聽聽聽聽聽聽 this.fireTableDataChanged();聽聽聽聽聽聽聽聽聽 //閫氬憡嬈¤〃緇撴瀯鍙樺寲

聽聽聽聽聽聽聽 selectRowHeaderModel.setRowCount( selectBody.size() );聽 //璁╂琛ㄨ澶磋窡鐫嬈¤〃琛屾暟鍙樺寲
聽聽聽聽聽 }
聽聽聽 };
聽聽聽 selectTable.setModel( selectModel );

聽聽聽 prepareRowHeaderModel.setRowCount( prepareBody.size() );
聽聽聽 selectRowHeaderModel.setRowCount( selectBody.size() );
聽 }

聽 /**
聽聽 *
聽聽 * 鍙栨秷鎵鏈夐夋嫨鐨勪漢鍛?br />聽聽 *
聽聽 */
聽 private final void deselectAll()
聽 {
聽聽聽 for( int i=0; i<selectBody.size(); i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 ( (Object[])selectBody.get( i ) )[0]=Boolean.FALSE;聽 //灝嗘墍鏈夐夋嫨鐨勮鐨勭涓鍒楄涓篺alse
聽聽聽聽聽聽 }

聽聽聽 selectBody.clear();聽 //鍒犻櫎宸茬粡閫夋嫨鐨勫唴瀹?/font>

聽聽聽 prepareModel.fireTableDataChanged();聽 //閫氬憡涓昏〃緇撴瀯鍙樺寲
聽聽聽 selectModel.fireTableDataChanged();聽聽 //閫氬憡嬈¤〃緇撴瀯鍙樺寲

聽聽聽 selectRowHeaderModel.setRowCount( selectBody.size() );聽 //璁╂琛ㄨ澶磋窡鐫嬈¤〃琛屾暟鍙樺寲
聽 }

聽 /**
聽聽 *
聽聽 * 鍏抽棴紼嬪簭
聽聽 *
聽聽 *
聽聽 */
聽 private void closeApplication()
聽 {
聽聽聽 Toolkit.getDefaultToolkit().beep();

聽聽聽 int answer=JOptionPane.showConfirmDialog( TableChooser.this, "鎮ㄧ湡鐨勮閫鍑烘緋葷粺錛?, "閫鍑虹▼搴?, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null );

聽聽聽 if( answer==JOptionPane.YES_OPTION )聽 //閫夋嫨鈥滄槸鈥?br />聽聽聽聽聽 {
聽聽聽聽聽聽聽 System.exit( 0 );
聽聽聽聽聽 }
聽聽聽 else if( answer==JOptionPane.NO_OPTION )聽 //閫夋嫨鈥滃惁鈥?br />聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 return;
聽聽聽聽聽聽聽聽聽聽 }
聽 }


聽 /**
聽聽 *
聽聽 * 鍏ュ彛涓葷▼搴?br />聽聽 *
聽聽 */
//*/////////////////////////////////////////////////////////////////////////////
聽 public static void main( String args[] )
聽 {
聽聽聽 //鏀瑰彉GUI瀛椾綋
聽聽聽 Font font=new Font( "瀹嬩綋", Font.PLAIN, 12 );
聽聽聽 Enumeration keys=UIManager.getLookAndFeelDefaults().keys();
聽聽聽 while( keys.hasMoreElements() )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 Object key=keys.nextElement();

聽聽聽聽聽聽聽聽聽聽 if( UIManager.get( key ) instanceof Font )
聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 UIManager.put( key, font );
聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 }

聽聽聽 //鏀瑰彉ComboBox鑳屾櫙鑹?br />聽聽聽 UIManager.put( "ComboBox.foreground", Color.black );
聽聽聽 UIManager.put( "ComboBox.background", Color.white );
聽聽聽 UIManager.put( "ComboBox.disabledForeground", Color.gray );
聽聽聽 UIManager.put( "ComboBox.disabledBackground", Color.white );

聽聽聽 UIManager.put( "Viewport.background", Color.white );

聽聽聽 //new TableChooser( true ).setVisible( true );
聽聽聽 new TableChooser( false ).setVisible( true );
聽 }
//*/////////////////////////////////////////////////////////////////////////////
}

/***********************************************************
聽*
聽* 寰呴夈佸凡閫夎〃鏍艱澶寸敤鐨勬覆鏌撳櫒Renderer
聽*
聽**********************************************************/
class RowHeaderRenderer extends JLabel implements TableCellRenderer
{
聽 private JTable refTable;
聽 private JTableHeader header;

聽 private Color headerForeground;
聽 private Color headerBackground;
聽 private Font headerFont;

聽 public RowHeaderRenderer( JTable refTable )
聽 {
聽聽聽 this.refTable=refTable;
聽聽聽 this.header=refTable.getTableHeader();

聽聽聽 this.headerForeground=header.getForeground();
聽聽聽 this.headerBackground=header.getBackground();
聽聽聽 this.headerFont=header.getFont();
聽 }

聽 public Component getTableCellRendererComponent( JTable table,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Object obj,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 boolean isSelected,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 boolean hasFocus,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int row,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int col )
聽 {
聽聽聽 this.setOpaque( true );

聽聽聽 //璁句負TableHeader鐨勮竟妗嗙被鍨?br />聽聽聽 this.setBorder( UIManager.getBorder( "TableHeader.cellBorder" ) );

聽聽聽 //灞呬腑鏄劇ず鏂囧瓧
聽聽聽 this.setHorizontalAlignment( CENTER );

聽聽聽 //璁劇疆鑳屾櫙鑹蹭負TableHeader鐨勮儗鏅壊
聽聽聽 this.setBackground( headerBackground );

聽聽聽 if( isSelected )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 //褰撻夊彇鍗曞厓鏍兼椂,鍦╮ow header涓婅緗垚閫夊彇棰滆壊
聽聽聽聽聽聽聽 this.setForeground( Color.white );
聽聽聽聽聽聽聽 this.setBackground( UIManager.getColor( "ScrollBar.thumbShadow" ) );
聽聽聽聽聽聽聽 this.setFont( headerFont );
聽聽聽聽聽聽聽 this.setText( String.valueOf( row+1 )+"*" );聽聽聽 //鏄劇ず琛屾暟
聽聽聽聽聽 }
聽聽聽 else{ this.setForeground( headerForeground );
聽聽聽聽聽聽聽聽聽 this.setFont( headerFont );
聽聽聽聽聽聽聽聽聽 this.setText( String.valueOf( row+1 ) );聽聽聽 //鏄劇ず琛屾暟
聽聽聽聽聽聽聽 }

聽聽聽 return this;
聽 }
}

/***********************************************************
聽*
聽* 寰呴夈佸凡閫夎〃鏍艱澶寸敤鐨凪odel
聽*
聽**********************************************************/
class RowHeaderModel extends DefaultTableModel
{
聽 RowHeaderModel( int row, int col )
聽 {
聽聽聽 super( row, col );
聽 }

聽 public boolean isCellEditable( int row, int col )
聽 {
聽聽聽 return false;聽 //鏁翠釜琛屽ご涓嶇粰緙栬緫
聽 }
}

/***********************************************************
聽*
聽* 寰呴夈佸凡閫夎〃鏍煎乏涓婅Corner
聽*
聽**********************************************************/
class RowHeaderCorner extends JLabel
{
聽 private JTable table;

聽 RowHeaderCorner( JTable table, String title )
聽 {
聽聽聽 super( title, JLabel.CENTER );

聽聽聽 this.table=table;

聽聽聽 this.addMouseListener( new MouseAdapter()
聽聽聽 {
聽聽聽聽聽 public void mousePressed( MouseEvent e )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 tableSelectAll();
聽聽聽聽聽 }
聽聽聽 } );

聽聽聽 this.setBorder( UIManager.getBorder( "TableHeader.cellBorder" ) );
聽 }

聽 private void tableSelectAll()
聽 {
聽聽聽 table.selectAll();
聽 }
}

/***********************************************************
聽*
聽* 寰呴夈佸凡閫夎〃鏍肩敤鐨勬覆鏌撳櫒Renderer
聽*
聽**********************************************************/
class ShowTableRenderer extends DefaultTableCellRenderer
{
聽 public Component getTableCellRendererComponent( JTable table,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Object obj,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 boolean isSelected,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 boolean hasFocus,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int row,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int col )
聽 {
聽聽聽 super.getTableCellRendererComponent( table,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 obj,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 isSelected,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hasFocus,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 row,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 col );

聽聽聽 this.setHorizontalAlignment( JLabel.CENTER );聽 //灞呬腑鏄劇ず鏂囧瓧

聽聽聽 return this;
聽 }
}

/***********************************************************
聽*
聽* 寰呴夈佸凡閫夎〃鏍肩敤鐨凪odel
聽*
聽**********************************************************/
class ShowTableModel extends AbstractTableModel
{
聽 private ArrayList tableBody;
聽 private String[] tableTitle;

聽 ShowTableModel( ArrayList body, String[] title )
聽 {
聽聽聽 this.tableBody聽 = body;
聽聽聽 this.tableTitle = title;
聽 }

聽 public Object getValueAt( int row, int col )
聽 {
聽聽聽 if( row>=0&&row<tableBody.size()&&col>=0&&col<tableTitle.length )聽 //鎺у埗寰堜弗
聽聽聽聽聽 {
聽聽聽聽聽聽聽 return ( (Object[])tableBody.get( row ) )[col];
聽聽聽聽聽 }
聽聽聽 else{ return null;
聽聽聽聽聽聽聽 }
聽 }

聽 public void setValueAt( Object value, int row, int col )
聽 {
聽聽聽 ( (Object[])tableBody.get( row ) )[col]=value;
聽 }

聽 public int getColumnCount()
聽 {
聽聽聽 return tableTitle.length;
聽 }

聽 public String getColumnName( int col )
聽 {
聽聽聽 if( col>=0&&col<tableTitle.length )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 return tableTitle[col];
聽聽聽聽聽 }
聽聽聽 else{ return "";
聽聽聽聽聽聽聽 }
聽 }

聽 public Class getColumnClass( int col )
聽 {
聽聽聽 if( col==0 )聽 //絎竴鍒椾負閫夋嫨妗?br />聽聽聽聽聽 {
聽聽聽聽聽聽聽 return Boolean.class;
聽聽聽聽聽 }

聽聽聽 return Object.class;
聽 }

聽 public int getRowCount()
聽 {
聽聽聽 return tableBody.size();
聽 }

聽 public boolean isCellEditable( int row, int col )
聽 {
聽聽聽 return ( col==0 );聽 //濡傛灉鏄涓鍒楃粰緙栬緫錛屽叾浠栦笉緇?br />聽 }
}



NeedJava 2007-07-08 22:03 鍙戣〃璇勮
]]>
銆擩ava銆曞叧浜嶫Table鐨凴endererhttp://m.tkk7.com/needjava/archive/2007/07/03/127722.htmlNeedJavaNeedJavaMon, 02 Jul 2007 20:14:00 GMThttp://m.tkk7.com/needjava/archive/2007/07/03/127722.htmlhttp://m.tkk7.com/needjava/comments/127722.htmlhttp://m.tkk7.com/needjava/archive/2007/07/03/127722.html#Feedback0http://m.tkk7.com/needjava/comments/commentRss/127722.htmlhttp://m.tkk7.com/needjava/services/trackbacks/127722.htmlimport java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.DefaultCellEditor;

import javax.swing.event.ChangeEvent;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;

import javax.swing.table.TableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;


public class WhoFirstTest
{
聽 public static void main( String[]args )
聽 {
聽聽聽 final Object[][] data=new Object[][]{ { "11", new Integer( 1 ) }, { "22", new Integer( 2 ) } };

聽聽聽 final String[] header=new String[]{ "琛ㄥご1", "琛ㄥご2" };

聽聽聽 Table table=new Table( new BaseModel( data, header ) );

聽聽聽 JTextField editor=new JTextField();
聽聽聽 editor.setBorder( null );
聽聽聽 table.setDefaultEditor( Object.class, new BaseEditor( editor ) );

聽聽聽 table.setDefaultRenderer( Object.class, new BaseRenderer() );

聽聽聽 table.getModel().addTableModelListener( new TableModelListener()
聽聽聽 {
聽聽聽聽聽 public void tableChanged( TableModelEvent e )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 System.out.println( "tableChanged called" );
聽聽聽聽聽聽聽 /*/
聽聽聽聽聽聽聽 System.out.println( "FirstRow="+e.getFirstRow() );
聽聽聽聽聽聽聽 System.out.println( "LastRow="+e.getLastRow() );
聽聽聽聽聽聽聽 System.out.println( "Column="+e.getColumn() );
聽聽聽聽聽聽聽 System.out.println( "Type="+( ( e.getType()==TableModelEvent.INSERT ) ? "Insert" : ( e.getType()==TableModelEvent.UPDATE ) ? "Update" : ( e.getType()==TableModelEvent.DELETE ) ? "Delete" : "Unknow" ) );
聽聽聽聽聽聽聽 /*/
聽聽聽聽聽聽聽 //Do CRUD for DB ...
聽聽聽聽聽聽聽 //*/
聽聽聽聽聽 }
聽聽聽 } );

聽聽聽 JFrame frame=new JFrame( "鐪嬬湅緇欏崟鍏冩牸璧嬪肩殑欏哄簭" );
聽聽聽 frame.setContentPane( new JScrollPane( table ) );
聽聽聽 frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
聽聽聽 frame.pack();
聽聽聽 frame.setVisible( true );
聽 }
}


class Table extends JTable
{
聽 public Table( TableModel model )
聽 {
聽聽聽 super( model );
聽 }

聽 public void editingStopped( ChangeEvent e )
聽 {
聽聽聽 System.out.println( "editingStopped called" );
聽聽聽 super.editingStopped( e );
聽 }

聽 public Component prepareRenderer( TableCellRenderer renderer, int row, int column )
聽 {
聽聽聽 System.out.println( "prepareRenderer called" );
聽聽聽 return super.prepareRenderer( renderer, row, column );
聽 }
}


class BaseModel extends AbstractTableModel
{
聽 Object[][] data = null;
聽 Object[] header = null;

聽 public BaseModel( Object[][] data, Object[] header )
聽 {
聽聽聽 this.data聽聽 = data;
聽聽聽 this.header = header;
聽 }

聽 public String getColumnName( int column )
聽 {
聽聽聽 return header[column].toString();
聽 }

聽 public int getRowCount()
聽 {
聽聽聽 return data.length;
聽 }

聽 public int getColumnCount()
聽 {
聽聽聽 return header.length;
聽 }

聽 public Object getValueAt( int row, int col )
聽 {
聽聽聽 return data[row][col];
聽 }

聽 public boolean isCellEditable( int row, int column )
聽 {
聽聽聽 return true;
聽 }

聽 public void setValueAt( Object value, int row, int col )
聽 {
聽聽聽 System.out.println( "setValueAt called" );
聽聽聽 data[row][col]=value;
聽聽聽 fireTableCellUpdated( row, col );
聽 }

聽 public void fireTableCellUpdated( int row, int column )
聽 {
聽聽聽 super.fireTableCellUpdated( row, column );
聽聽聽 System.out.println( "fireTableCellUpdated called" );
聽 }

聽 public void fireTableChanged( TableModelEvent e )
聽 {
聽聽聽 super.fireTableChanged( e );
聽聽聽 System.out.println( "fireTableChanged called" );
聽 }
}


class BaseRenderer extends DefaultTableCellRenderer
{
聽 public BaseRenderer()
聽 {
聽聽聽 super();
聽 }

聽 public Component getTableCellRendererComponent( JTable table,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Object value,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 boolean isSelected,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 boolean hasFocus,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int row,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int column )
聽 {
聽聽聽 System.out.println( "BaseRenderer called" );

聽聽聽 setText( ( value==null ) ? "" : value.toString() );

聽聽聽 return this;
聽 }
}


class BaseEditor extends DefaultCellEditor
{
聽 public BaseEditor( JTextField editor )
聽 {
聽聽聽 super( editor );
聽 }

聽 public boolean stopCellEditing()
聽 {
聽聽聽 System.out.println( "stopCellEditing called" );

聽聽聽 String value=(String)getCellEditorValue();

聽聽聽 try{ Integer.parseInt( value );
聽聽聽聽聽聽 }
聽聽聽 catch( NumberFormatException e )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 this.editorComponent.requestFocus();
聽聽聽聽聽聽聽聽聽聽 return false;
聽聽聽聽聽聽聽聽 }

聽聽聽 return super.stopCellEditing();
聽 }
}



NeedJava 2007-07-03 04:14 鍙戣〃璇勮
]]>
銆擲QL銆曘擩ava銆昅S SQL Server Typehttp://m.tkk7.com/needjava/archive/2007/07/03/127720.htmlNeedJavaNeedJavaMon, 02 Jul 2007 20:03:00 GMThttp://m.tkk7.com/needjava/archive/2007/07/03/127720.htmlhttp://m.tkk7.com/needjava/comments/127720.htmlhttp://m.tkk7.com/needjava/archive/2007/07/03/127720.html#Feedback0http://m.tkk7.com/needjava/comments/commentRss/127720.htmlhttp://m.tkk7.com/needjava/services/trackbacks/127720.html import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedWriter;

import java.awt.Toolkit;

import java.sql.Types;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.ResultSetMetaData;

import javax.swing.JOptionPane;


final class GetSQLServerType
{
聽 private Connection聽聽聽聽聽聽聽 connection;
聽 private Statement聽聽聽聽聽聽聽聽 statement;
聽 private ResultSet聽聽聽聽聽聽聽聽 resultSet;
聽 private ResultSetMetaData metaData;

聽 public GetSQLServerType()
聽 {
聽聽聽 try{ //瀹炰緥鍖朚SSQL2000鐨勯┍鍔?br />聽聽聽聽聽聽聽聽 Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );

聽聽聽聽聽聽聽聽 //榪炴帴鏁版嵁搴?br />聽聽聽聽聽聽聽聽 connection=DriverManager.getConnection( "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind", "sa", "" );

聽聽聽聽聽聽聽聽 //鍒涘緩Statement鎺ュ彛瀵硅薄
聽聽聽聽聽聽聽聽 statement=connection.createStatement();

聽聽聽聽聽聽聽聽 resultSet=statement.executeQuery( " SELECT * FROM SQLServerType " );

聽聽聽聽聽聽聽聽 metaData=resultSet.getMetaData();

聽聽聽聽聽聽聽聽 int columnCount=metaData.getColumnCount();

聽聽聽聽聽聽聽聽 FileWriter fw=new FileWriter( "SQLServerType.htm" );
聽聽聽聽聽聽聽聽 BufferedWriter bfw=new BufferedWriter( fw );

聽聽聽聽聽聽聽聽 bfw.write( "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=GBK\">" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "<title>SQL Server鏁版嵁綾誨瀷瀵瑰簲Java綾誨瀷</title>" ); bfw.newLine();

聽聽聽聽聽聽聽聽 //鐢蟲槑鏍峰紡琛?/////////////////////////////////////////
聽聽聽聽聽聽聽聽 bfw.write( "<style type=text/css>" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "td{ color:聽聽聽聽聽聽聽聽聽 #000000;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 background:聽聽聽聽 #FFFFFF;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 height:聽聽聽聽聽聽聽聽 20px;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 font-size:聽聽聽聽聽 10pt;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 font-weight:聽聽聽 normal;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 font-family:聽聽聽 瀹嬩綋;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 text-align:聽聽聽聽 right;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 vertical-align: middle;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 table-layout:聽聽 fixed;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 padding-top:聽聽聽 2;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 padding-bottom: 2;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 padding-left:聽聽 2;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 padding-right:聽 2;" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽 }" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "td.left{ text-align: left; }" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "td.center{ text-align: center; }" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "</style>" ); bfw.newLine();

聽聽聽聽聽聽聽聽 bfw.write( "<body>" ); bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "<table border=1 bordercolor=#000000 cellspacing=0 style=\"border-collapse:collapse\">" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽 <tr>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnClassName( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnLabel( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getCatalogName( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnCount()</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnDisplaySize( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnName( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnType( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getColumnTypeName( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getPrecision( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getScale( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getSchemaName( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.getTableName( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isAutoIncrement( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isCaseSensitive( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isCurrency( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isDefinitelyWritable( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isNullable( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isReadOnly( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isSearchable( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isSigned( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>metaData.isWritable( column )</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "聽 </tr>" );bfw.newLine();

聽聽聽聽聽聽聽聽 for( int column=0; column<columnCount; column++ )
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 /*/
聽聽聽聽聽聽聽聽聽聽聽聽聽 //metaData鐨勬墍鏈夋柟娉?br />聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnCount() "聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 + metaData.getColumnCount() );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isAutoIncrement( "+( column+1 )+" ) "聽聽聽聽聽 + metaData.isAutoIncrement( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isCaseSensitive( "+( column+1 )+" ) "聽聽聽聽聽 + metaData.isCaseSensitive( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isSearchable( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽 + metaData.isSearchable( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isCurrency( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽 + metaData.isCurrency( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isNullable( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽 + metaData.isNullable( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isSigned( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽聽聽 + metaData.isSigned( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnDisplaySize( "+( column+1 )+" ) " + metaData.getColumnDisplaySize( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnLabel( "+( column+1 )+" ) "聽聽聽聽聽聽 + metaData.getColumnLabel( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnName( "+( column+1 )+" ) "聽聽聽聽聽聽聽 + metaData.getColumnName( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getSchemaName( "+( column+1 )+" ) "聽聽聽聽聽聽聽 + metaData.getSchemaName( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getPrecision( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽 + metaData.getPrecision( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getScale( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽聽聽 + metaData.getScale( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getTableName( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽 + metaData.getTableName( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getCatalogName( "+( column+1 )+" ) "聽聽聽聽聽聽 + metaData.getCatalogName( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnType( "+( column+1 )+" ) "聽聽聽聽聽聽聽 + metaData.getColumnType( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnTypeName( "+( column+1 )+" ) "聽聽聽 + metaData.getColumnTypeName( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isReadOnly( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽 + metaData.isReadOnly( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isWritable( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽 + metaData.isWritable( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isDefinitelyWritable( "+( column+1 )+" ) " + metaData.isDefinitelyWritable( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.getColumnClassName( "+( column+1 )+" ) "聽聽 + metaData.getColumnClassName( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "metaData.isSigned( "+( column+1 )+" ) "聽聽聽聽聽聽聽聽聽聽聽聽 + metaData.isSigned( ( column+1 ) ) );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "--------------------------------------------------------------------------------" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 //*/

聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽 <tr>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnClassName( column+1 )聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnLabel( column+1 )聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getCatalogName( column+1 )聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnCount()聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnDisplaySize( column+1 ) +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnName( column+1 )聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnType( column+1 )聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getColumnTypeName( column+1 )聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getPrecision( column+1 )聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getScale( column+1 )聽聽聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getSchemaName( column+1 )聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.getTableName( column+1 )聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isAutoIncrement( column+1 )聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isCaseSensitive( column+1 )聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isCurrency( column+1 )聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isDefinitelyWritable( column+1 ) +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isNullable( column+1 )聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isReadOnly( column+1 )聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isSearchable( column+1 )聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isSigned( column+1 )聽聽聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽聽聽 <td noWrap class=center>"+metaData.isWritable( column+1 )聽聽聽聽聽聽聽聽聽聽 +"</td>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽 bfw.write( "聽 </tr>" );bfw.newLine();
聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽 bfw.write( "</table>" );bfw.newLine();
聽聽聽聽聽聽聽聽 bfw.write( "</body>" ); bfw.newLine();

聽聽聽聽聽聽聽聽 bfw.flush();
聽聽聽聽聽聽聽聽 fw.close();
聽聽聽聽聽聽 }
聽聽聽 catch( IOException ioe )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 Toolkit.getDefaultToolkit().beep();
聽聽聽聽聽聽聽聽聽聽 JOptionPane.showMessageDialog( null, "鍒涘緩鏂囦歡澶辮觸錛?, "鍒涘緩鏂囦歡閿欒", JOptionPane.WARNING_MESSAGE );
聽聽聽聽聽聽聽聽聽聽 System.out.println( ioe );
聽聽聽聽聽聽聽聽 }
聽聽聽 catch( ClassNotFoundException cnfe )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 Toolkit.getDefaultToolkit().beep();
聽聽聽聽聽聽聽聽聽聽 JOptionPane.showMessageDialog( null, "鎵句笉鍒版暟鎹簱椹卞姩鏂囦歡錛?, "鏁版嵁搴撻敊璇?, JOptionPane.WARNING_MESSAGE );
聽聽聽聽聽聽聽聽聽聽 System.out.println( cnfe );
聽聽聽聽聽聽聽聽 }
聽聽聽 catch( SQLException se )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 Toolkit.getDefaultToolkit().beep();
聽聽聽聽聽聽聽聽聽聽 JOptionPane.showMessageDialog( null, "榪炴帴鏁版嵁搴撳け璐ワ紒璇鋒鏌ユ暟鎹簱鏄惁榪愯銆?, "鏁版嵁搴撻敊璇?, JOptionPane.WARNING_MESSAGE );
聽聽聽聽聽聽聽聽聽聽 System.out.println( se );
聽聽聽聽聽聽聽聽 }
聽聽聽 finally{ try{ if( resultSet!=null )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 resultSet.close();聽 //鍏抽棴ResultSet鎺ュ彛瀹炰緥
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( statement!=null )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 statement.close();聽 //鍏抽棴Statement鎺ュ彛瀹炰緥
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( connection!=null )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 connection.close();聽 //鍏抽棴Connection鎺ュ彛瀹炰緥
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 catch( SQLException se )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println( se );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽 }

聽 public static void main( String[] arg )
聽 {
聽聽聽 GetSQLServerType g=new GetSQLServerType();
聽 }
}



NeedJava 2007-07-03 04:03 鍙戣〃璇勮
]]>
銆擩ava銆曞緱鍒扮綉涓婇偦灞?/title><link>http://m.tkk7.com/needjava/archive/2006/09/15/69803.html</link><dc:creator>NeedJava</dc:creator><author>NeedJava</author><pubDate>Fri, 15 Sep 2006 08:07:00 GMT</pubDate><guid>http://m.tkk7.com/needjava/archive/2006/09/15/69803.html</guid><wfw:comment>http://m.tkk7.com/needjava/comments/69803.html</wfw:comment><comments>http://m.tkk7.com/needjava/archive/2006/09/15/69803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/needjava/comments/commentRss/69803.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/needjava/services/trackbacks/69803.html</trackback:ping><description><![CDATA[ <p> <font face="Courier New" color="#808080" size="2">import java.io.IOException;<br />import java.io.BufferedReader;<br />import java.io.InputStreamReader;</font> </p> <p> <font face="Courier New" color="#808080" size="2">/*******************************************************************************<br />聽*<br />聽* 浣跨敤 net view /domain 寰楀埌宸ヤ綔緇勫垪琛?br />聽*<br />聽* 浣跨敤 net view /domain:workgroup 寰楀埌鎸囧畾宸ヤ綔緇勭殑鏈哄櫒鍒楄〃<br />聽*<br />聽* Author: NeedJava<br />聽*<br />聽* Modified: 2006.09.11<br />聽*<br />聽* Version: 1.0<br />聽*<br />聽******************************************************************************/<br />public class Neighborhood<br />{<br />聽 private static String getNeighborhood( String command, String domain )<br />聽 {<br />聽聽聽 String line="";</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 boolean begin=false;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 StringBuffer sb=new StringBuffer();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 try{ Process process=Runtime.getRuntime().exec( command );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 BufferedReader br=new BufferedReader( new InputStreamReader( process.getInputStream() ) );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 while( ( line=br.readLine() )!=null )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 line=line.trim();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //浣犵殑宸ヤ綔緇勫崈涓囦笉瑕佸懡鍚嶄負鈥滃懡浠ゆ垚鍔熷畬鎴愩傗濇垨鑰呮槸鈥淭he command completed successfully.鈥?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( line.endsWith( "鍛戒護鎴愬姛瀹屾垚銆? )||line.equalsIgnoreCase( "The command completed successfully." ) )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 begin=false;</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( begin )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( domain.length()>0 )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 sb.append( "聽 " ).append( line ).append( "\r\n" );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //System.out.println( "寰楀埌聽聽 "+line );<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else{ sb.append( line ).append( "\r\n" );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //System.out.println( "寰楀埌 "+line );</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 sb.append( getNeighborhood( "net view /domain:"+line, line ) );<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( line.endsWith( "-" ) )<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 begin=true;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 br.close();</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽聽聽聽聽聽 process.waitFor();<br />聽聽聽聽聽聽 }<br />聽聽聽 catch( IOException ioe )<br />聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽 System.out.println( ioe );<br />聽聽聽聽聽聽聽聽 }<br />聽聽聽 catch( Exception e )<br />聽聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽 System.out.println( e );<br />聽聽聽聽聽聽聽聽 }</font> </p> <p> <font face="Courier New" color="#808080" size="2">聽聽聽 return sb.toString();<br />聽 }</font> </p> <p> <br /> <font face="Courier New" color="#808080" size="2">聽 public static void main( String[] args )<br />聽 {<br />聽聽聽 System.out.println( Neighborhood.getNeighborhood( "net view /domain", "" ) );<br />聽 }<br />}</font> </p> <img src ="http://m.tkk7.com/needjava/aggbug/69803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/needjava/" target="_blank">NeedJava</a> 2006-09-15 16:07 <a href="http://m.tkk7.com/needjava/archive/2006/09/15/69803.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://www50884.com" target="_blank">国产V亚洲V天堂A无码</a>| <a href="http://wwwly6080.com" target="_blank">亚洲视频日韩视频</a>| <a href="http://s8sb.com" target="_blank">无码专区AAAAAA免费视频</a>| <a href="http://557265.com" target="_blank">亚洲中文无码a∨在线观看</a>| <a href="http://whxhjc.com" target="_blank">www亚洲精品少妇裸乳一区二区</a>| <a href="http://wwwkckc.com" target="_blank">CAOPORN国产精品免费视频</a>| <a href="http://djllgs.com" target="_blank">亚洲国产美女在线观看</a>| <a href="http://19933k.com" target="_blank">全部免费国产潢色一级</a>| <a href="http://sh-lkby.com" target="_blank">久久久久国产精品免费网站</a>| <a href="http://www769393.com" target="_blank">中文字幕亚洲综合久久综合</a>| <a href="http://tltcn.com" target="_blank">亚洲乱码一区二区三区在线观看</a>| <a href="http://bznys.com" target="_blank">国产在线jyzzjyzz免费麻豆</a>| <a href="http://52099jy.com" target="_blank">一级毛片大全免费播放</a>| <a href="http://www-66409b.com" target="_blank">久久精品国产亚洲AV蜜臀色欲</a>| <a href="http://8953y.com" target="_blank">亚洲区小说区图片区</a>| <a href="http://s88s88.com" target="_blank">免费在线观看的网站</a>| <a href="http://qestest.com" target="_blank">成人无码WWW免费视频</a>| <a href="http://8izh.com" target="_blank">亚洲av片在线观看</a>| <a href="http://zbhongtai.com" target="_blank">亚洲无线电影官网</a>| <a href="http://173ba.com" target="_blank">亚洲片一区二区三区</a>| <a href="http://qmoread.com" target="_blank">成人毛片18女人毛片免费96 </a>| <a href="http://tc116.com" target="_blank">免费在线观看日韩</a>| <a href="http://khushkhush.com" target="_blank">十八禁无码免费网站</a>| <a href="http://kdltuliao.com" target="_blank">男人免费视频一区二区在线观看</a>| <a href="http://gisdn.com" target="_blank">亚洲国产成人精品电影</a>| <a href="http://milbolg.com" target="_blank">亚洲AV无码久久寂寞少妇</a>| <a href="http://sczxzt.com" target="_blank">四虎影视永久免费观看地址</a>| <a href="http://xmm5pkt.com" target="_blank">jjizz全部免费看片</a>| <a href="http://ncmyw.com" target="_blank">全黄大全大色全免费大片</a>| <a href="http://cndianxian.com" target="_blank">亚洲av片在线观看</a>| <a href="http://www77714.com" target="_blank">亚洲AV一二三区成人影片</a>| <a href="http://svvnn.com" target="_blank">亚洲AV无码专区电影在线观看</a>| <a href="http://928348.com" target="_blank">亚洲成A人片在线观看中文</a>| <a href="http://eldadhagar.com" target="_blank">国产精品久久久久久久久久免费 </a>| <a href="http://ssni703.com" target="_blank">免费a级毛片网站</a>| <a href="http://mmstom.com" target="_blank">免费无码又爽又刺激聊天APP</a>| <a href="http://www321fafa.com" target="_blank">久久伊人免费视频</a>| <a href="http://0101av.com" target="_blank">国产午夜精品理论片免费观看</a>| <a href="http://89kino.com" target="_blank">国产成人精品亚洲</a>| <a href="http://qulu999.com" target="_blank">亚洲成av人在线观看网站 </a>| <a href="http://hongyue8.com" target="_blank">亚洲精品无码中文久久字幕</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>