??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人精品无码区在线观看,亚洲成年轻人电影网站www,久久久青草青青国产亚洲免观 http://www.tkk7.com/RexMao/分njava技术与生活zh-cnFri, 09 May 2025 12:58:55 GMTFri, 09 May 2025 12:58:55 GMT60Oracle SQLPLUS 常用命o结Q一Q?/title><link>http://www.tkk7.com/RexMao/archive/2008/05/17/201089.html</link><dc:creator>Rex Mao</dc:creator><author>Rex Mao</author><pubDate>Sat, 17 May 2008 06:11:00 GMT</pubDate><guid>http://www.tkk7.com/RexMao/archive/2008/05/17/201089.html</guid><wfw:comment>http://www.tkk7.com/RexMao/comments/201089.html</wfw:comment><comments>http://www.tkk7.com/RexMao/archive/2008/05/17/201089.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/RexMao/comments/commentRss/201089.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RexMao/services/trackbacks/201089.html</trackback:ping><description><![CDATA[<p dir="ltr" style="margin-right: 0px"><br /> <strong>1. 昄当前q接?/strong><br /> <br /> SQLQ?br /> <span style="color: #999999"><span style="color: #999999"><span style="color: #999999"><span style="color: #000000; background-color: #c0c0c0"><font style="background-color: #c0c0c0" color="#999999"><span style="color: #999999"><span style="color: #999999"><span style="color: #999999"><span style="color: #000000; background-color: #ffffff"><font color="#999999">        </font>SELECT *                                                                                                                                                 <br />         FROM V$SESSION                                                                                                                                 <br />         WHERE STATUS = 'INACTIVE'                                                                                                             <br />         AND USERNAME IS NOT NULL;                                                                                                         </span></span></span></span></font><span style="background-color: #999999"><br /> </span></span></span></span><span style="color: #000000; background-color: #999999"><br /> </span></span></p> <strong>2. 强制关闭用户的连?/strong><br /> <br /> SQL:<br /> <span style="background-color: #ffffff"><span style="color: #000000"><span style="background-color: #c0c0c0"><font style="background-color: #c0c0c0"><span style="background-color: #ffffff"><span style="color: #000000">    a) SELECT USERNAME, SID, SERIAL#                                                                                                    <br />         FROM V$SESSION                                                                                                                                 <br />         WHERE STATUS = 'INACTIVE'                                                                                                             <br />         AND USERNAME IS NOT NULL;                                                                                                         <br />                                                                                                                                                                           <br />     b) ALTER SYSTEM KILL SESSION 'SID, SERIAL#'; --SID ?SERIAL#是在步骤a)中得到的l果?/span></span></font><br /> </span></span></span><br /> <strong>3. 从返回的l果中选择Wm到n条记?/strong><br /> <br /> SQL:<br /> <span style="background-color: #c0c0c0"><span style="background-color: #ffffff">        <span style="color: #000000">SELECT *                                                                                                                                                   <br />         FROM (                                                                                                                                                      <br />                      SELECT A.*, ROWNUM RN                                                                                                       <br />                      FROM (                                                                                                                                         <br />                                    SELECT *                                                                                                                        <br />                                    FROM YOURTABLE --q里L你的SELECT语句代替                                            <br />                                   ) A                                                                                                                                     <br />                      WHERE ROWNUM <= n                                                                                                              <br />                      )                                                                                                                                                      <br />         WHERE RN >= m;                                                                                                                                      <br /> </span></span></span>    <br /> <strong>4. 重新~译?(package) ?包体 (package body)</strong><br />     此命令可以用于查看在SQLPLUS中创建的package的编译错误?br /> <br /> SQL:<br />         a) ~译 package<br /> <span style="color: #000000; background-color: #c0c0c0"><span style="background-color: #ffffff"><span style="background-color: #c0c0c0"><span style="color: #000000"><span style="background-color: #ffffff"><span style="color: #000000"><span style="color: #000000">            <span style="color: #000000">ALTER PACKAGE YOUR_PACKAGE                                                                                                 <br />             COMPILE SPECIFICATION;                                                                                                                <span style="color: #999999"><span style="color: #000000"><br /> </span></span></span></span></span>        b) ~译 package body</span></span></span></span></span><br /> <span style="color: #000000; background-color: #ffffff">            ALTER PACKAGE YOUR_PACKAGE                                                                                                 <br />             COMPILE BODY;                                                                                                                                   </span><span style="color: #000000"><br />         c) 查看错误<br /> </span><span style="color: #000000; background-color: #c0c0c0"><span style="background-color: #ffffff"><span style="color: #000000">            SHOW ERR;                                                                                                                                             </span></span><br /> </span><br /> <strong>5. 解除锁定的用?br /> <br /> SQL:<br /> SQL:<br /> </strong>    ALERT USER USERNAME UNLOCK;<br /> <br /> <br />  <span style="color: #000000"><span style="color: #c0c0c0"><span style="background-color: #999999"><br /> </span></span></span> <img src ="http://www.tkk7.com/RexMao/aggbug/201089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RexMao/" target="_blank">Rex Mao</a> 2008-05-17 14:11 <a href="http://www.tkk7.com/RexMao/archive/2008/05/17/201089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA文g传输E序http://www.tkk7.com/RexMao/archive/2007/11/03/157892.htmlRex MaoRex MaoSat, 03 Nov 2007 03:19:00 GMThttp://www.tkk7.com/RexMao/archive/2007/11/03/157892.htmlhttp://www.tkk7.com/RexMao/comments/157892.htmlhttp://www.tkk7.com/RexMao/archive/2007/11/03/157892.html#Feedback5http://www.tkk7.com/RexMao/comments/commentRss/157892.htmlhttp://www.tkk7.com/RexMao/services/trackbacks/157892.html ׃只ؓ毕业设计而写的,只实C功能Q没有在速度上优化,发上来只为给要做cME序的朋友做个参考。以下是毕业论文中的节选?br />

源代码已l上传了?br />
W?/span>3?nbsp;     设计文档

3Q?/span>1       d概述

       本项d要开发一?/span>P2P文g传输软gQ该软g可以在局域网和互q上使用Q具有文件传输,断点l传Q多U程q接{功能?/span>

3Q?/span>1Q?/span>1      开发背?/span>

       随着|络的普及,在网l中交换信息Q特别是文g成ؓ使用|络时经常性工作,现有的文件传输工具如QQ?/span>MSN{,主要功能是作为即旉讯工具使用Q而且在局域网中用时仍需q接Cq网。本文开发的软gZP2Pl构实现文g传输Q不依靠服务器维护用戯料,所以,只要两台机器可以q通,可以进行文件传输?/span>

3Q?/span>1Q?/span>2       定义

       P2PQ即peer-to-peerQ可以理解ؓ点对点,或对{传输的意思?/span>

3Q?/span>1Q?/span>3       开发工?/span>

       开发采?/span>JAVA语言Q开发工具ؓjbuilder 2005

3Q?/span>2       文g传输业务程

3Q?/span>2Q?/span>1       通讯序关系

       在文件传输时Q传输过E可以简单的分ؓ4步,如图 Q?/span>

1?span style="font: 7pt 'Times New Roman'">              由文件发送者发h件传输,他首先发送文件名Q文件大,验证消息{信息给文g接收者?/span>

2?span style="font: 7pt 'Times New Roman'">              文g接收者收到文件信息和发送者信息,军_是否接收Q如不接Ӟ则发送拒l接收消息给文g发送者,文g传输l束。如同意接收Q发送同意接收消息和文g传输起始字节Q用于断点箋传)l发送者?/span>

3?span style="font: 7pt 'Times New Roman'">              发送者开始发送文件数据包Q直到最后一个文件数据包Q发送者在最后一个文件数据包上加上标记?/span>

4?span style="font: 7pt 'Times New Roman'">              接收者识别最后一个文件数据包Q文件传输成功?/span>


3Q?/span>2Q?/span>2       文g发送端的详l业务流E?/span>


 

图中昄了发送文件时的详l业务流E?/span>

1、首先,要选择要发送的文gQ可以选择一个文件或同一个文件夹下的多个文g发送,当选择多个文gӞ软gؓ每个文g建立一个传输线E。选择文g后,发送者要填写目标IP和端口,׃是基?/span>P2P的文件传输,不存在服务器l护好友列表Q所以需要知道目?/span>IP才能传输文gQ用户也可以填写验证消息用于描述自己的n份和文g的介l?/span>

2、发送者收到确认包Q判断是否接收文Ӟ如果不接Ӟ则传输结束,如果接收Q则打开要发送的文gQ设|v始传输字节?/span>

3、发送者读取一个文件片D,加入是否是最后一个文件片D늚标志Q打包发l接收者?/span>

4、发送完最后一个文件片D|Q文件传输结束?/span>

3Q?/span>2Q?/span>3       文g接收者详l业务流E?/span>


 

1?nbsp;从一打开软g开始,监听U程׃启动Q这时用户就扮演者文件接收者的角色Q当有文件发送者发来请求时Q监听线E徏立与发送者的q接Qƈ创徏传输U程Q接收者得到发送者传来的文g信息和验证消息,用户q能得到发送者的IP地址Q用h据这些信息决定是否接收文Ӟq发送确认包l发送者,认包里包含了是否接收的标志Q和开始传输的起始字节?/span>

2?nbsp;接收者开始接收数据包Q解包,写入文g中,直到最后一个文件片D,关闭文gQ文件传输结束?/span>

3Q?/span>3       软g的传输协议设?/span>

       Z更好的控制文件传输的程Q开发设计了文g传输协议Q该协议属于应用层协议,Z不传输q程q于复杂Q协议尽量简单设计。主要的内容是传输包的格式?/span>

3Q?/span>3Q?/span>1       传输包的格式


 

其中传输包的cd?/span>3U:

PACKAGE_TYPE_FILENAME = 0x01

文g名包Q该包用于文件发送者向接收者发送文件信息和验证消息

PACKAGE_TYPE_CONTEXT = 0x02

文g内容包,该包用于传输文g内容

PACKAGE_TYPE_CONFIRMRECEIVE = 0x03

文g传输认包,该包用于文g接收者向发送者确认文件的接收

3Q?/span>3Q?/span>2       文g名包格式


 

3Q?/span>3Q?/span>3      文g传输包格?br />

 

其中MORE_DATA用于认是否是文件片D늚最后一个包Q以l束文g的传输?/span>0表示没有数据Q?/span>1表示q有数据?/span>

3Q?nbsp;3Q?/span>4      文g接受认包格?/span>


 

其中CONFIRM_FLAG表示是否认文g接收Q?/span>1表示接收Q?/span>0表示不接Ӟ当接收时Q?/span>OFF表示文g传输的v始字节,用来实现断点l传?/span>

3Q?       文g传输的状态机

文g传输U程的地层其实就是一个状态{换机Q线E具有几个状态,U程从文件名传输状态开始,Ҏ文g传输的不同情况,在各个状态间转换Q直C输成功或传输p|?/span>

FILE_TRANS_STATUS_FILENAME = 0x01

文g名称传输状态,文g传输刚徏立连接时Q传输状态处于文件名传输状?/span>

FILE_TRANS_STATUS_CONTEXT = 0x02

文g内容传输转台Q在传输文g内容Ӟ传输状态属于该状?/span>

FILE_TRANS_STATUS_WAITFORCONFIRM = 0x03

{待认状态,文g发送者,发送完文g信息和验证消息后Q处于该状态,文g接收者接收到文g信息和验证消息后处于该状?/span>

FILE_TRANS_STATUS_SUCCESS = 0x04

文g传输成功状态,表示文g已成功传输完?/span>

FILE_TRANS_STATUS_FAIL = 0x05

文g传输p|状态,表示文g传输已经p|Q失败原因可能是Ҏ取消了文件传输或|络错误




 

3Q?        l构设计

软g主要?/span>MainFrame,TransFileManager,SocketThread,Server,TransFilePanel五个cL成图 表示了这几个cM间的关系?/span>


 

cd能介l?/span>

MainFrame

MainFramecL软g的主界面c,负责与用L交互?/span>

TransFileManager

TransFileManagercL文g传输的控制类Q负责管理文件的传输Q它l护一个传输线E(SocketThreadQ的列表Q每个线E都表示一个正在传输的d?/span>TransFileManagercd时的扫描各个U程的状态,Ҏ不同状态做Z同处理,如计传输速度Q显CZ输进度等?/span>

SocketThread

SocketThreadcL文g传输U程c,它负责底层的具体传输工作Q包括打包与解包Qƈ且{换自q状态,完成文g的传输?/span>

Server

ServercL?/span>TransFileManagercM用的Q它负责本地端口的监听,一旦有用户q接Q?/span>TransFileManager创Z个传输线E,攑օU程列表。而它l箋监听端口?/span>

TransFilePanel

TransFilePanel是一个面板,它用有按钮、进度条Q标{用来昄文g的传输状态?/span>

3Q?        c设?/span>

3Q?/span>6Q?/span>1       MainFrame

该类是视囄Q是软g的主界面?br />

 

成员变量Q?/span>

contentPane

contentPane?/span>JPanelcȝ对象Q是ȝ面的面板?/span>

jbtnSend

jbtnSend?/span>JButtoncd象,点击它将打开文g传输对话框?/span>

jbtnSetting

jbtnSetting?/span>JButtoncd象,点击它将打开讄对话框?/span>

jlblIP

jlblIP?/span>JLablecd象,它显C本机的IP地址Q方便文件的传输?/span>

jtpTransFile

jtpTransFile?/span>JTabbedPanecd象,是选项卡控Ӟ用于昄多个文g同时传输?/span>

tfm

tfm?/span>TransFileManagercd象,负责控制文g的传输?/span>

成员ҎQ?/span>

jbtnSend_anctionPerformed()

该方法ؓjbtnSend按钮的点M?/span>

jbtnSetting_actionPerformed()

该方法ؓjbtnSetting按钮的点M?/span>

This_windowClosed()

该方法ؓH口关闭事g

界面截图Q?/span>


 

3Q?/span>6Q?/span>2       TransFileManagerc?/span>

该类负责传输q程中对各个传输U程的检与控制?/span>


 

成员变量Q?/span>

jtp

jtp是选项卡控件对象,?/span>MainFramecMjtpTransFile对象的一个引用?/span>

panelist

paneList?/span>ArrayListcd象,它是一个链表结构,存储使用的选项卡?/span>

running

running是一?/span>boolean型的对象Q用来表C线E是否在执行?/span>

s

s?/span>Servercȝ对象Q用来坚听本地端口,{待用户的连接?/span>

threadList

threadList?/span>ArrayListcd象,它是一个链表结构,存储使用的传输线E?/span>

maxThreadNum

maxTreadNum是整型变量,表示最大允许的U程数?/span>

port

port是整型变量,表示使用的端口号?/span>

成员ҎQ?/span>

close()

该方法用于关闭文件传输的控制?/span>

sendFile()

该方法用于徏立一个文件发送,要求输入参数为,目标IPQ端口号Q要发送的文g和验证消息?/span>

3Q?Q?           SocketThreadc?/span>

SocketThreadcL文g传输的底层支持类Q它提供文g传输的服务?/span>


 

成员变量Q?/span>

sendBuf

sendBuf是一个字节型数据Q它是文件发送和接收时的~冲区?/span>

dis

dis?/span>DataInputStream型对象,它是?/span>Socket对象得到的输入流?/span>

dos

dos?/span>DataOutputStream型对象,它是?/span>Socket对象得到的输出流?/span>

fDis

fDis?/span>DataInputStream型对象,它是要发送的文g的输入流?/span>

raf

raf?/span>RandomAccessFile型对象,该对象允许设|输出流的位|,以支持断点箋传?/span>

running

running是一?/span>boolean型对象,用来表示U程是否在执行?/span>

serverName

serverName是字W串型对象,表示服务器的地址Q该对象只有在线E作为发送者时使用?/span>

errorMessage

errorMessage是字W串型对象,表示出错的信息?/span>

fileName

fileName是字W串型对象,表示文g名?/span>

fileSender

fileSender是一?/span>boolean型对象,表示是文件发送者还是文件接收者?/span>

IP

IP是字W串型对象,用来存放目的机的IP地址?/span>

message

message是字W串型对象,用来表示验证信息?/span>

port

port是整型变量,表示q接的端口号?/span>

transFileLength

transFileLength是长整型变量Q表C已l传输的文g长度Q?/span>TransFileManager可以用它来计传输进度和传输速度

成员ҎQ?/span>

cancelTrans()

该方法用于取消传?/span>

confirmReceiveFile()

该方法用于确认传输文?/span>

参数flag用来表示是否同意传输

参数fileName用来表示保存的文?/span>

参数off用来表示起始传输字节

getFileTransMessage()

该方法用于得到文件传输的基本信息。如Q文件发送的目标Q端口号{?/span>

getStatus()

该方法返回一个整型变量,表示当前U程的传输状态?/span>

run()

U程的执行方法,该方法中循环执行发送或接收ҎQ完成文件的发送或接收?/span>

setError()

该方法通过一个字W串型的参数讄错误信息?/span>

stopThread()

该方法用于停止线E的执行?/span>

doPackage()

打包ҎQ该Ҏ中,ҎU程所处的不同状态,Ҏ据加入不同的包头和其他信息,q行打包?/span>

readFromFile()

该方法从要发送的文g中读取一个整型数?/span>

readFromSocket()

该方法从Socket输入读取一个整型数Q它有一个重载版本读取一个字节数l的数据?/span>

receiveFile()

该方法ؓ接收文g的方法,是线E@环中Q文件接收者执行的Ҏ?/span>

sendFile()

该方法ؓ发送文件方法,是线E@环中Q文件发送者执行的Ҏ?/span>

writeToFile()

该方法写一个字节数据的数据C存的文g中?/span>

writeToSocket()

该方法写数据?/span>Socket输出中Q它有三个重载版本,分别是写入整型数Q写入长整型数和写入字节数组数据?/span>

3Q?Q?            TransFilePanelc?/span>

q个cd于视囄Q它作ؓȝ面上的一个对象用,含有q度条,按钮Q标{对象Q用于显C文件传输状态,每一个传输线E都拥有自己?/span>TransFilePanelcd象?/span>


 

成员变量Q?/span>

fileName

fileName是一个字W串Q表CZ输文件的文g名?/span>

fileSender

fileSender?/span>boolean型对象,表示是文件发送者还是接收者?/span>

isCanneled

isCanneled?/span>boolean型对象,传输q程中,用户点了取消按钮后,该标志位|?/span>trueQ?/span>TransFileManager会@环检?/span>isCanneled标志Q当发现其ؓtrue后,它会关闭对应的传输线E,而对方会到传输错误Q文件传输就停止了?/span>

isClosed

isClosed?/span>boolean型对象,它表C当传输q程已经停止Ӟ用户点击了关闭按钮,TransFileManagerisClosed?/span>trueӞ会在列表中去掉对应的传输U程?/span>TransFilePanel?/span>

isConfirm

isConfirm?/span>boolean型对象,它表C文件接收者是否确认了文g接收后(包括同意和拒l)Q?/span>TransFileManagerisConfirm?/span>trueӞ会将认状态发l文件发送者?/span>

jbtnCannel

jbtnCannel是取消按钮?/span>

jbtnOK

jbtnOK是确定按钮?/span>

jpgbFileTrans

jpgbFileTrans是文件传输的q度条?/span>

jtaFileTransStatus

jtaFileTransStatus是一个文本框Q用来显C文件传输的状态?/span>

transFileLength

transFileLength是一个长整型变量Q用来表C已l传输的文g长度?/span>

status

status是一个整行变量,表示文g传输的状态,所表示的状态与SocketThread中的对应?/span>

界面截图


 

3Q?              法介绍

3Q?/span>7Q?/span>1 TransFileManager的@环监?/span>

TransFileMangercȝ承了Threadc,实现多线E,避免循环监听时生阻塞?/span>

以下是在每次循环中做的工?/span>

1?nbsp;得到传输U程(SocketThread)的数量和传输状态显C面?/span>(TransFilePanel)的数量?/span>

2?nbsp;从传输线E列表中依次取出一个传输线E?/span>

3?nbsp;判断当前取出的线E是否有对应的传输状态显C面板,如果有执?/span>5Q如果没有执?/span>4?/span>

4?nbsp;增加传输状态显C面板,q且在主界面上增加选项卡?/span>

5?nbsp;判断传输U程的状态,Ҏ不同的状态做不同的处理?/span>

6?nbsp;如果列表中的U程取完Q执?/span>1Q没有取完执?/span>2?/span>

E序程图:



 

3Q?/span>7Q?/span>2 断点l传

软g支持断点l传的功能,该功能主要算法如下:

1?nbsp;当文件传输中途停止时Q文件接收者程序ؓ接收的文件创Z个以该文件名+.tmp为文件名的时文Ӟ临时文g与该文g保存在同一个\径下。时文件中保存文g以传输的字节数和文g的大?/span>

2?nbsp;当文件接收者接收该文gӞ如果有对应的临时文gQ程序会到该文件的临时文gQ读取以传输的字节数和文件大,q且比较传输的字节数与未完成传输的文件大是否相{,文g大小和发送来的文件大是否相{,如果都相{,执行3Q否则执?/span>4?/span>

3?nbsp;文件的输出设|到应该l箋传输的位|,q将起始传输字节数发l发送者,执行5?/span>

4?nbsp;如果有未完成的传输文Ӟ其删除Q执?/span>5?/span>

5?nbsp;q行文g传输?/span>

E序程图:



?br />  

3Q?Q?            本地端口的多q接监听

Servercd象负责本地端口的监听Q可以支持多了连接,具体数量q戯|?/span>

1?span style="font: 7pt 'Times New Roman'">  用用戯|的端口创徏监听Q等待连接?/span>

2?span style="font: 7pt 'Times New Roman'">  当有用户q接上后Q用该连接创Z?/span>SocketThread传输U程Q加入到U程列表?/span>

3?span style="font: 7pt 'Times New Roman'">  如果停止监听则退出,否则执行1?/span>

E序程图:



Rex Mao 2007-11-03 11:19 发表评论
]]>
准备开?/title><link>http://www.tkk7.com/RexMao/archive/2007/07/21/131596.html</link><dc:creator>Rex Mao</dc:creator><author>Rex Mao</author><pubDate>Sat, 21 Jul 2007 02:32:00 GMT</pubDate><guid>http://www.tkk7.com/RexMao/archive/2007/07/21/131596.html</guid><wfw:comment>http://www.tkk7.com/RexMao/comments/131596.html</wfw:comment><comments>http://www.tkk7.com/RexMao/archive/2007/07/21/131596.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/RexMao/comments/commentRss/131596.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RexMao/services/trackbacks/131596.html</trackback:ping><description><![CDATA[<br>      l过毕业后的休息Q来C已l快一个星期了QM感觉一般,城市没有传说中那么现代,路上一h广告,一hZCh行横道,一h破破的楼房,地铁站外一h黑R拉客。昨天去了外滩,才看到几处高|不过怎么看也没有电视上放的那h气势。南京\上老外q是比较多(老外的眼很qQ?br>      周一p工作了,又要回到与代码ؓ伴的生活了,用键盘敲Z后美好的生活吧?br>                                                                                                                                                     <img height=98 alt="" src="http://www.tkk7.com/images/blogjava_net/rexmao/keyboard.jpg" width=140 border=0> <img src ="http://www.tkk7.com/RexMao/aggbug/131596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RexMao/" target="_blank">Rex Mao</a> 2007-07-21 10:32 <a href="http://www.tkk7.com/RexMao/archive/2007/07/21/131596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML的DOM解析器的java实现Q三Q?c设?/title><link>http://www.tkk7.com/RexMao/archive/2007/05/31/121107.html</link><dc:creator>Rex Mao</dc:creator><author>Rex Mao</author><pubDate>Thu, 31 May 2007 03:32:00 GMT</pubDate><guid>http://www.tkk7.com/RexMao/archive/2007/05/31/121107.html</guid><wfw:comment>http://www.tkk7.com/RexMao/comments/121107.html</wfw:comment><comments>http://www.tkk7.com/RexMao/archive/2007/05/31/121107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/RexMao/comments/commentRss/121107.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RexMao/services/trackbacks/121107.html</trackback:ping><description><![CDATA[ <br><strong>c设?br><br></strong><span><span>    </span></span><span>软g中v关键作用的类?span>CharCollector</span>字符攉器类?span>SimpleDOMParser</span>解析内核cd<span>Manager</span>中间层控制类?br><br><strong>字符攉器类<br></strong><br></span> <p><img alt="" src="http://www.tkk7.com/images/blogjava_net/rexmao/CharCollector.jpg" border=0></p> <p><span>字符攉器类是Y件的底层c,它与<span>XML</span>文g交互Q读取文件中的字W信息,l过处理QŞ成标{,文本Q属性等数据Z层提供服务?/span></p> <p> </p> <p><span>成员变量介绍Q?/span></p> <p><span>aReader:Reader</span><span>对象Q输入流为文件输入流Q它?span>XML</span>文g的字W数据以的形式提供l类?/span></p> <p><span>成员Ҏ介绍Q?/span></p> <p><span>comparedArray(): </span><span>输入Q两?span>int</span>型数l,输出Q?span>boolean</span>型,q回两个数组是否相同。用于比较两个数l是否相同,在方法中Q对两个数组的数逐一比较?/span></p> <p><span>hasMoreChars(): </span><span>输入Q无Q输出:<span>boolean</span>型,表示文g中是否还有字W,该方法用于确定文件中是否q有字符?/span></p> <p><span>peek():<span>          </span></span><span>输入Q?span>int</span>型数l。用于存储窥探到的字W,输出Q无Q该Ҏ用于从文件中H探数组长度的字W数据。窥探就是从文g中读取数据后Q将输入标记回以前的位|,以免丢失数据?/span></p> <p><span><span>                  </span></span><span>法qͼ</span></p> <p><span>?span>aReader</span>上标记数l的长度</span></p> <p><span>aReader.mark(buffer.length);</span></p> <p><span>2</span><span>、将数据依次d数组</span></p> <p><span>for (int i = 0; i < buffer.length; i++) {</span></p> <p><span><span>            </span>buffer[i] = aReader.read();</span></p> <p><span><span>        </span>}</span></p> <p><span>恢复<span>aReader</span></span></p> <p><span>aReader.reset();</span></p> <p><span>peek():<span>    </span></span><span>输入Q无Q输出:<span>int</span>型,是窥探到的字W,该方法从文g中窥探一个字W数据?/span></p> <p><span>processCDATA(): </span><span>输入Q?span>StringBuffer</span>型,用于存放<span>CDATA</span>数据Q输出:无,用于处理<span>XML</span>文g中的<span>CDATA</span>节点。得到的<span>CDATA</span>节点存放?span>StringBuffer</span>对象中?/span></p> <p><span><span>    </span></span><span>法qͼ</span></p> <p><span>预设两个数组</span></p> <p><span>int[] cdataHead = {'<', '!', '[', 'C', 'D', 'A', 'T', 'A', '['};</span></p> <p><span>int[] cdataTail = {']', ']', '>'};</span></p> <p><span>H探<span>cdataHead</span>长度的字W存在数l?span>buf</span>?/span></p> <p><span>peek(buf);</span></p> <p><span>比较<span>buf</span>?span>cdataHead</span>数组的内Ҏ否相同,如果不同q回<span>falase,</span>如果相同l箋执行?/span></p> <p><span>?span>aReader</span>跌<span>cdataHead</span>的长度,然后循环d直到H探的字W数l与<span>cdataTail</span>相同Q将中间的字W存攑ֈ<span>StringBuffer</span>对象中?/span></p> <p><span>while (true) {</span></p> <p><span><span>                </span>peek(buf);</span></p> <p><span><span>                </span>if (comparedArray(buf, cdataTail)) {</span></p> <p><span><span>                    </span>aReader.skip(cdataTail.length);</span></p> <p><span><span>                    </span>flag = true;</span></p> <p><span><span>                    </span>break;</span></p> <p><span><span>        </span><span>        </span>} else {</span></p> <p><span><span>                    </span>bufChar = aReader.read();</span></p> <p><span><span>                    </span>if (bufChar == -1) {</span></p> <p><span><span>                        </span>throw new IOException("CDATA node without end tag");</span></p> <p><span><span>                    </span>}</span></p> <p><span><span>                    </span>sb.append((char) bufChar);</span></p> <p><span><span>      </span><span>          </span>}</span></p> <p><span>}</span></p> <p><span>processEntity(): </span><span>输入Q?span>StringBuffer</span>型,用于存放实体数据Q输出:无,用语处理<span>XML</span>文g中的内徏实体cd。得到的实体存放?span>StringBuffer</span>对象中?/span></p> <p><span>readTag():<span> </span></span><span>输入Q无Q输出:<span>String</span>型,是读到的标签Q从<span>XML</span>文g中读取ƈ整理成一个标{数据存攑֜<span>String</span>对象中?/span></p> <p><span><span>    </span></span><span>法qͼ</span></p> <p><span>H探一个字W,如果不是<span>’<’</span>Q抛出异常。否则l执行?/span></p> <p><span>int nextChar = peek();</span></p> <p><span>if (nextChar != '<') {</span></p> <p><span><span>   </span>throw new IOException("expect '<',but got '" + (char) nextChar +"'");</span></p> <p><span>}</span></p> <p><span>H探一个字W?span>aChar</span></span></p> <p><span>int aChar = peek();</span></p> <p><span>如果字符?span>’<’</span>Q进?span>CDATA</span>节点处理</span></p> <p><span>if (aChar == '<') {</span></p> <p><span><span>                </span>if (processCDATA(sb)) {</span></p> <p><span><span>                    </span>aChar = peek();</span></p> <p><span><span>                    </span>continue;</span></p> <p><span><span>                </span>}</span></p> <p><span>}</span></p> <p><span> </span><span>如果字符?span>’&’</span>Q进行内建实体处?/span></p> <p><span>if (aChar == '&') {</span></p> <p><span><span>                </span>if (processEntity(sb)) {</span></p> <p><span><span>                    </span>aChar = peek();</span></p> <p><span><span>                    </span>continue;</span></p> <p><span><span>                </span>}</span></p> <p><span>}</span></p> <p><span> </span><span>如果字符?span>’>’</span>或文件结束,q回<span>StringBuffer</span>对象?/span></p> <p><span><span>    </span> </span><span>如果是其它字W,加入?span>StringBuffer</span>对象中?/span></p> <p><span>readText():<span>   </span></span><span>输入Q无Q输出:<span>String</span>型,是读到的文本内容Q从<span>XML</span>文g中读取ƈ整理成一个文本数据存攑֜<span>Sting</span>对象中?/span></p> <p><span>skipOtherTag():<span>   </span></span><span>输入Q无Q输出:无,跌一个不处理的标{?/span></p> <p><span>skipOtherTags(): </span><span>输入Q无Q输出:无,跌多个不处理的标签?/span></p> <p><span>skipWhitespace():</span><span>输入Q无Q输出:无,跌I格?br><br><strong>解析内核c?br></strong><br></span></p> <p><img height=310 alt="" src="http://www.tkk7.com/images/blogjava_net/rexmao/SimpleDOMParser.jpg" width=242 border=0></p> <p><span><span>    </span></span>该类用于解析<span>XML</span>文gQ包?span>parser()</span>ҎQ是该类的核心方法?/p> <p> </p> <p><span>成员变量介绍Q?/span></p> <p><span>aCharCollector:CharCollector</span><span>cd象,负责字符攉?/span></p> <p><span>currentNode: SimpleElement</span><span>cd象,表示当前处理的元素?/span></p> <p><span>Elements:<span>     </span>Stack</span><span>cd象,用栈的存储结构,表示元素之间的层ơ关pR?/span></p> <p><span>成员Ҏ介绍Q?/span></p> <p><span>Parser():<span>     </span></span><span>输入Q无Q输出:<span>SimpleDocument</span>cd象,是返回的整个文档树型l构?/span></p> <p><span><span>              </span> </span><span>法qͼ</span></p> <p><span><span>1?/span></span><span>d一个标{?/span></p> <p><span><span>2?/span></span><span>判断是开始标{还是结束标{,如果是结束标{,转入l束标签处理<span>3</span></span></p> <p><span>如果是开始标{,转入开始标{֤?span>6</span></span></p> <p><span><span>3?/span></span><span>得到标签的名Uͼ判断是否?span>currentNode</span>的名U相同,如果相同Q执?/span></p> <p><span>4</span><span>Q否则抛出异?/span></p> <p><span><span>4?/span></span><span>判断是否q有标签Q如果有l箋执行<span>5</span>Q否则退出?/span></p> <p><span><span>5?/span></span><span>从栈中弹Z个节点给<span>currentNode</span>Q执?span>1</span></span></p> <p><span><span>6?/span></span><span>得到标签的名Uͼ属性,文本内容Q将标签加入?span>DOM</span>树中Qƈ且压栈?/span></p> <p><span>执行<span>1</span></span></p> <p><span>法的程序流E图<br><br><img height=612 alt="" src="http://www.tkk7.com/images/blogjava_net/rexmao/liuchenttu.jpeg" width=562 border=0><br><br><strong>中间层管理类<br></strong><br></span></p> <p><img height=335 alt="" src="http://www.tkk7.com/images/blogjava_net/rexmao/Manager.jpg" width=251 border=0></p> <p>中间层管理类用于控制和协调解析器与用L面?/p> <p> </p> <p><span>成员变量介绍Q?/span></p> <p><span>isParsered: boolean</span><span>型,判断是否已经解析q了?/span></p> <p><span>document: SimpleDocument</span><span>型对象,表示整个<span>XML</span>文档树,也是解析器返回的?/span></p> <p><span>parser:<span>       </span>SimpleDOMParser</span><span>型对象,表示解析器?/span></p> <p><span>成员Ҏ介绍Q?/span></p> <p><span>getTreeRoot(): </span><span>输入Q无Q输出:<span>DefaultMutableTreeNode</span>型对象,是得到的树的根节点,用于得到树的根节炏V?/span></p> <p><span>parser(): <span>   </span></span><span>输入Q无Q输出:无,用于执行解析操作?/span></p> <p><span>setInputStream(): </span><span>输入Q?span>InputStream</span>型对象,是要讄的输入流Q输出:无,用于讄解析源?/span></p> <p><span>setXMLFile()</span><span>Q?span><span>    </span> </span>输入Q?span>File</span>型对象,是要讄?span>XML</span>文gQ输出:无,用于讄<span>XML</span>文g源?/span></p> <p><span>getTreeNode():<span>    </span> </span><span>输入Q?span>SimpleElement</span>型对象,是要转换的对象,输出Q?span>DefaultMutableTreeNode</span>型对象,是{换后的对象,?/span></p> <p><span>于{换相应元素ؓ树的节点对象?/span></p> <p> </p> <img src ="http://www.tkk7.com/RexMao/aggbug/121107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RexMao/" target="_blank">Rex Mao</a> 2007-05-31 11:32 <a href="http://www.tkk7.com/RexMao/archive/2007/05/31/121107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML的DOM解析器的java实现Q二Q?E序l构设计http://www.tkk7.com/RexMao/archive/2007/05/27/120276.htmlRex MaoRex MaoSun, 27 May 2007 05:10:00 GMThttp://www.tkk7.com/RexMao/archive/2007/05/27/120276.htmlhttp://www.tkk7.com/RexMao/comments/120276.htmlhttp://www.tkk7.com/RexMao/archive/2007/05/27/120276.html#Feedback1http://www.tkk7.com/RexMao/comments/commentRss/120276.htmlhttp://www.tkk7.com/RexMao/services/trackbacks/120276.htmll构设计

各个cȝ功能介绍

Node?/span>Element?/span>Document?/span>Attr?/span>W3C?/span>DOM规范要求实现的接口。还有其它接口未列出?/span>

SimpleNode l承Node接口Q实?/span>Node接口的基本功能?/span>

 

SimpleElementl承Node?/span>Element接口Q对?/span>DOM树中的标准节点,也就?/span>XML文g中的一个标{?/span>

 

SimpleDocument l承Node?/span>Document接口Q对应整?/span>DOM树,它是解析器解析完成后Q返回的对象。用户可以用该对象讉K整个DOM树?/span>

 

SimpleAttr l承Node?/span>Attr接口Q对?/span>DOM树中的属性节点,用于存放属性名U和属性倹{?/span>

 

CharCollector 字符攉器类Q它直接?/span>XML文g接触Q根据需要向调用者提供下一个标{或文本{数据?/span>

 

SimpleDOMParser 解析器的核心c,它?/span>CharCollectorc,得到标签、文本等数据。?/span>SimpleElement?/span>SimpleAttr{类存放数据Q生?/span>SimpleDocumnet对象q回l调用者?/span>

 

MainFrame 用户界面c,它将解析l果展示l用Pq且Ҏ用户的操作,与用戯行交互?/span>

 

Manager 中间层管理类Q它协调用户界面Q?/span>MainFrameQ与解析器内?/span>(SimpleDOMParser)之间的关p,实现解析器的控制?/span>

 

内部接口设计

cdU?/span>

调用c?/span>

调用功能

SimpleDOMParser

SimpleElement

节点的存储,查找Q删除?/span>

SimpleDOMParser

SimpleAttr

属性节点的存储Q查找,删除?/span>

SimpleDOMParser

SimpleDocument

生成DOM?/span>

SimpleDomParser

CharCollector

字符攉Q得到标{与文本{?/span>

Manager

SimpleDOMParser

解析XML文档

Manager

MainFrame

用户界面的相x?/span>

 

用例关系设计

用例介绍

用户Q?/span>          参与者, 卌Y件的使用者?/span>

XML文gQ?/span>       参与者,XML文g?/span>

链接的文Ӟ    参与者,XML文g中链接的外部文g?/span>

选择XML文gQ?/span> 用户通过文g选择框选择一个本地的XML文g?/span>

选择URL地址Q?/span> 用户输入一个有效的URLQ指向网l上?/span>XML格式的网c?/span>

解析XML文gQ?/span> 用户定?/span>XML文gq行解析Q该Ҏ作要发生在选择XML文g或选择URL地址之后?/span>

修改文gQ?/span>        用户?/span>XML文gq行修改

保存文gQ?/span>        用户通过文g选择框,选择位置保存XML文g?/span>

选择DOM树节点:用户选择解析后的DOM树型l构上的节点?/span>

解析器解析:     解析器对XMLq行解析

攉字符Q?/span>        字符攉器负责处?/span>XML的字W数?/span>

界面展示Q?/span>        通过树型l构和图表向用户展示数据?/span>

 

字符攉器有限状态机

DFA M=Q?/span>{S,Ts,Tp,Tq,Cp,Ep,Er,Q},{LT,RT,A,C,EC,,EOF,NL,NLRA},f,S,{Q}Q?/span>

 

其中 字符集:

LT={<}

RT={/>}

A={&amp,&lt,&gt,&apos,&qout}

C={<!CDATA[[}

EC={]]>}

EOF代表文gl束

NL代表不是<的字W?/span>

NLRA 代表除去LT,RT,LTL,A,C的所有字W?/span>

 

状态:

SQ?/span> 开始状?/span>

TsQ标{֤理开始状?/span>

TpQ标{֤理状?/span>

TqQ标{֤理结束状?/span>

CpQ?/span>CDATA节点处理状?/span>

EpQ内建实体处理状?/span>

ErQ错误状?/span>

QQ结束状?/span>

 

状态{换函敎ͼ

 

f(S,LT)=Ts

f(S,NL)=Er

f(Tp,RT)=Tq

f(Tp,A)=Cp

f(Tp,C)=Ep

f(Ep,EC)=Tp

f(Ep,EOF)=Er

f(Tq,LT)=Ts

f(Tq,EOF)=Q

f(Tq,NLRA)=Tq

 



Rex Mao 2007-05-27 13:10 发表评论
]]>
java中怎样把图片存攑֜代码?/title><link>http://www.tkk7.com/RexMao/archive/2007/05/26/120139.html</link><dc:creator>Rex Mao</dc:creator><author>Rex Mao</author><pubDate>Sat, 26 May 2007 02:15:00 GMT</pubDate><guid>http://www.tkk7.com/RexMao/archive/2007/05/26/120139.html</guid><wfw:comment>http://www.tkk7.com/RexMao/comments/120139.html</wfw:comment><comments>http://www.tkk7.com/RexMao/archive/2007/05/26/120139.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/RexMao/comments/commentRss/120139.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RexMao/services/trackbacks/120139.html</trackback:ping><description><![CDATA[  <p><span>有时候不x囄资源攑֜目录里,让用L刎ͼ我用的方法是图片的像素矩阵存在代码里。可能比较笨Q具体做法是Q?/span></p> <p><span>MediaTracker mt = new MediaTracker(aFrame); //</span><span>媒体跟踪?/span></p> <p><span>Image img = Toolkit.getDefaultToolkit().createImage("</span><span>d</span><span>.jpg"); //</span><span>得到囄</span></p> <p><span>mt.addImage(img, 1);</span></p> <p><span>try {</span></p> <p><span> <span>     </span>mt.waitForAll();</span></p> <p><span><span>   </span>}</span></p> <p><span>catch (InterruptedException ex) {</span></p> <p><span><span>   </span>}</span></p> <p><span>BufferedImage bi = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB);</span></p> <p><span>bi.getGraphics().drawImage(img, 0, 0, 16, 16, f);</span></p> <p><span>int[] rbg = new int[bi.getWidth() * bi.getHeight()];</span></p> <p><span>bi.getRGB(0, 0, 16, 16, rbg, 0, 16); //</span><span>利用</span><span>BufferedImage</span><span>得到像素矩阵</span></p> <p><span>for (int i = 0; i < rbg.length; i++) {</span></p> <p><span><span>      </span>System.out.print(rbg[i] + ","); //</span><span>打印</span></p> <p><span><span>   </span>}</span></p> <p> </p> <p><span>再在代码中创建静态对?/span></p> <p><span>private static int[] penPixels = {</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, -16777216, -16777216, -16777216, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, -16777216, -2031616, -2031616, -2031616, -16777216, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, -16777216, -2031616, -1, 16777215, -16777216, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>-16777216, -16777216, -2031616, -1, -16777216, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>-16777216, -256, -16777216, -16777216, -16777216, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, -16777216,</span></p> <p><span><span>      </span>-256, -1, -1842205, -16777216, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, -16777216, -1,</span></p> <p><span><span>      </span>-256, -16777216, -16777216, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215,</span></p> <p><span> <span>     </span>16777215, 16777215, 16777215, 16777215, 16777215, -16777216, 16777215,</span></p> <p><span><span>      </span>-256, -1842205, -16777216, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, -16777216, -256, -1,</span></p> <p><span><span>    </span><span>  </span>-16777216, -16777216, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, -16777216, -256, -1, -1842205,</span></p> <p><span><span>      </span>-16777216, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, -16777216, -16777216, -256,</span></p> <p><span><span>      </span>-16777216, -16777216, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, -16777216, -16777216, -16777216,</span></p> <p><span><span>      </span>-16777216, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, -16777216, -16777216, -16777216,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, -16777216, -16777216, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, -16777216, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,</span></p> <p><span><span>      </span>16777215, 16777215</span></p> <p><span> };//</span><span>打印出来的矩?/span></p> <p><span>private static MemoryImageSource misPen = new MemoryImageSource(16, 16,</span></p> <p><span><span>      </span>penPixels, 0, 16);</span></p> <p><span>public static Image imgPen = Toolkit.getDefaultToolkit().createImage(misPen);</span></p> <p><span>q样可以直接?/span><span>imgPen</span><span>囄了?/span></p> <img src ="http://www.tkk7.com/RexMao/aggbug/120139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RexMao/" target="_blank">Rex Mao</a> 2007-05-26 10:15 <a href="http://www.tkk7.com/RexMao/archive/2007/05/26/120139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml的DOM解析器的java实现 Q一Q?DOM规范?/title><link>http://www.tkk7.com/RexMao/archive/2007/05/23/119304.html</link><dc:creator>Rex Mao</dc:creator><author>Rex Mao</author><pubDate>Wed, 23 May 2007 01:13:00 GMT</pubDate><guid>http://www.tkk7.com/RexMao/archive/2007/05/23/119304.html</guid><wfw:comment>http://www.tkk7.com/RexMao/comments/119304.html</wfw:comment><comments>http://www.tkk7.com/RexMao/archive/2007/05/23/119304.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/RexMao/comments/commentRss/119304.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RexMao/services/trackbacks/119304.html</trackback:ping><description><![CDATA[  <p><span>q是我的毕业设计Q本来以为挺单的Q做了以后发现还是能学到点知识,发来l大家一起学习?/span></p> <p><span>DOM</span><span>规范定义了一l接口,用户通过q些接口来访?/span><span>DOM</span><span>解析器返回的树型l构?/span><span>DOM</span><span>不同?/span><span>SAX</span><span>的事仉动模式,它是整个文档解析完成后QŞ成一个树型结构放在内存中。下面是</span><span>DOM</span><span>规范中的所有接口,灰色昄的是本解析器实现的接口?br><img style="WIDTH: 582px; HEIGHT: 438px" height=438 alt="" src="http://www.tkk7.com/images/blogjava_net/rexmao/DOM.JPG" width=582 border=0></span></p>   <p><span>DOMImplementation</span></p> <p><span>DOMImplementation</span><span>接口允许代码讉K</span><span>DOM</span><span>的具体实玎ͼ以找出对各种Ҏ的有效支持。其中的</span><span>hasFeature(String feature, String version)</span><span>Ҏ可以试具体?/span><span>DOM</span><span>实现是否支持某特性?/span></p> <p> </p> <p><span>NodeList</span></p> <p><span>NodeList</span><span>对象?/span><span>Node</span><span>对象的一个简单的有序集合。例如,可以用来存放一个节点的子节炏V?/span></p> <p> </p> <p><span>Node</span></p> <p><span>Node</span><span>对象?/span><span>DOM</span><span>中所有节点的基对象?/span><span>Element</span><span>?/span><span>Attr</span><span>?/span><span>Text</span><span>?/span><span>CDATASection</span><span>?/span><span>EntityReference</span><span>?/span><span>Entity</span><span>?/span><span>ProcessingInstruction</span><span>?/span><span>Comment</span><span>?/span><span>Document</span><span>?/span><span>DocumentType</span><span>?/span><span>DocumentFragment</span><span>?/span><span>Notation</span><span>对象都派生于</span><span>Node</span><span>对象?/span></p> <p> </p> <p><span>NamedNodeMap</span></p> <p><span>NamedNodeMap</span><span>对象是可以通过猛成讉K?/span><span>Node</span><span>对象集合。可以用来存放节点的属性?/span></p> <p> </p> <p><span>DOMException</span></p> <p><span>异常接口</span></p> <p> </p> <p><span>DocumentFragment</span></p> <p><span>DocumentFragment</span><span>对象是文档片D,是文档(</span><span>Document</span><span>Q对象的一个简单的版本。它可以用来表示文档的Q意子树?/span></p> <p> </p> <p><span>Document</span></p> <p><span>Document</span><span>对象是能?/span><span>DOM</span><span>CZ的主要对象。它代表整个?/span><span>xml</span><span>文档Q也是解析器q回的对象?/span></p> <p> </p> <p><span>Element</span></p> <p><span>Element</span><span>对象包含文档中的元素的信息。代表一个标{?/span></p> <p> </p> <p><span>Attr</span></p> <p><span>Attr</span><span>是属性对象,一个节点的属性存?/span><span>NamedNodeMap</span><span>里?/span></p> <p> </p> <p><span>CharacterData</span></p> <p><span>CharacterData</span><span>对象表示</span><span>xml</span><span>文g中的字符信息?/span></p> <p> </p> <p><span>DocumentType</span></p> <p><span>DocumentType</span><span>对象表示文档cdQ也是</span><span>DTD</span><span>声明里的内容?/span></p> <p> </p> <p><span>Notation</span></p> <p><span>Notation</span><span>对象表示</span><span>DTD</span><span>声明中的关于表示法的信息?/span></p> <p> </p> <p><span>Entity</span></p> <p><span>Entity</span><span>对象包含</span><span>DTD</span><span>中有兛_体的信息?/span></p> <p> </p> <p><span>EntityReference</span></p> <p><span>EntityReference</span><span>对象包含对已解析文档中的实体的引用信息?/span></p> <p> </p> <p><span>ProcessingInstruction</span></p> <p><span>ProcessingInstruction</span><span>对象包含文档中内嵌的处理指o的信息?/span></p> <p> </p> <p><span>Text</span></p> <p><span>Text</span><span>对象表示节点的文本数据?/span></p> <p> </p> <p><span>Comment</span></p> <p><span>Comment</span><span>对象表示注释?/span></p> <p> </p> <p><span>CDATASection</span></p> <p><span>CDATASection</span><span>对象包含文本中未被解析块的内宏V?/span></p> <img src ="http://www.tkk7.com/RexMao/aggbug/119304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RexMao/" target="_blank">Rex Mao</a> 2007-05-23 09:13 <a href="http://www.tkk7.com/RexMao/archive/2007/05/23/119304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 调用本地文ghttp://www.tkk7.com/RexMao/archive/2007/05/15/117511.htmlRex MaoRex MaoTue, 15 May 2007 01:45:00 GMThttp://www.tkk7.com/RexMao/archive/2007/05/15/117511.htmlhttp://www.tkk7.com/RexMao/comments/117511.htmlhttp://www.tkk7.com/RexMao/archive/2007/05/15/117511.html#Feedback3http://www.tkk7.com/RexMao/comments/commentRss/117511.htmlhttp://www.tkk7.com/RexMao/services/trackbacks/117511.html我看了一下Windows XP/NTpȝ的调用,是写成Runtime.getRuntime.exec("cmd /c start "+url);


Rex Mao 2007-05-15 09:45 发表评论
]]>
javadE序技术小l(三) d的鼠标事件处?/title><link>http://www.tkk7.com/RexMao/archive/2007/04/24/113260.html</link><dc:creator>Rex Mao</dc:creator><author>Rex Mao</author><pubDate>Tue, 24 Apr 2007 09:07:00 GMT</pubDate><guid>http://www.tkk7.com/RexMao/archive/2007/04/24/113260.html</guid><wfw:comment>http://www.tkk7.com/RexMao/comments/113260.html</wfw:comment><comments>http://www.tkk7.com/RexMao/archive/2007/04/24/113260.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/RexMao/comments/commentRss/113260.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/RexMao/services/trackbacks/113260.html</trackback:ping><description><![CDATA[<p><span>d的鼠标事件处理是dE序中比较复杂的内容Q这里只是简单介l,有兴的可以看程序?/span><span><br>         Point p0,p1;//</span><span>记录拖拽d的v点和l点</span><span><br>         p0=new Point();<br>         p1=new Point();<br>         //</span><span>鼠标按下Q主要记录按下的?/span><span><br>         void jPaneDraw_mousePressed(MouseEvent e) {<br>            p0=new Point(e.getX(),e.getY());<br>}<br>         //</span><span>鼠标拖拽q程Q根据不同的囑ŞQ画出拖拽过E的囑ŞQ复杂图形可以用矩Ş代替</span><span><br>         void jPaneDraw_mouseDragged(MouseEvent e) {<br>         switch(toolMode){<br>         case 0:{ //</span><span>直线</span><span><br>       p1.x = e.getX();<br>        p1.y = e.getY();<br>        g.setColor(col);<br>        g.drawLine(p0.x, p0.y, p1.x, p1.y);<br>        jPaneDraw.repaint();<br>        break;<br>   }<br>         ...//</span><span>其它囑Ş</span><span><br>}<br>}<br>//</span><span>鼠标抬vQ根?/span><span>p0</span><span>?/span><span>p1</span><span>生成对应的图?/span><span><br>void jPaneDraw_mouseReleased(MouseEvent e) {<br>   switch(toolMode){<br>case 0:{ //</span><span>直线</span><span><br>         CusLine2D aCusShape = new CusLine2D(p0.x, p0.y, p1.x, p1.y); //</span><span>建立囑Ş</span><span><br>         ...//</span><span>图形加入到囑Ş列表</span><span><br>         break;<br>}<br>         ...//</span><span>其它囑Ş</span><span><br>}<br>         jPaneDraw.repaint();<br>}</span></p> <img src ="http://www.tkk7.com/RexMao/aggbug/113260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/RexMao/" target="_blank">Rex Mao</a> 2007-04-24 17:07 <a href="http://www.tkk7.com/RexMao/archive/2007/04/24/113260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javadE序技术小l(二) 重绘与双~冲http://www.tkk7.com/RexMao/archive/2007/04/23/113040.htmlRex MaoRex MaoMon, 23 Apr 2007 13:47:00 GMThttp://www.tkk7.com/RexMao/archive/2007/04/23/113040.htmlhttp://www.tkk7.com/RexMao/comments/113040.htmlhttp://www.tkk7.com/RexMao/archive/2007/04/23/113040.html#Feedback1http://www.tkk7.com/RexMao/comments/commentRss/113040.htmlhttp://www.tkk7.com/RexMao/services/trackbacks/113040.html         l出W一U的java实现
         a?/font>  定义后台图象BufferedImage offScreenImg=offScreenImg = new BufferedImage(this.maxX, this.maxY,
                                     BufferedImage.TYPE_INT_RGB);

         b?/font>  得到后台?/span>Graphics实例

    Graphics2D offScreenG;

        offScreenG = offScreenImg.createGraphics();

         c?/font>  覆盖paintComponentҎ

     public void paintComponent(Graphics g) {

          super.paintComponent(g);

        g.drawImage(offScreenImg, 0, 0, this.maxX, this.maxY, this);

          }

        l制时用后台GraphicsQ绘制好后,调用repaint()Q将offScreenImgl到面板上?/span>




Rex Mao 2007-04-23 21:47 发表评论
]]>
վ֩ģ壺 һ| ѹaƬվ| Ļ뱬app| ۺ| ҹƷ侫֮ѹۿ| ˳ձ߹ۿ| ëƬav߲һ| þù׾Ʒǿ| ޸Ƶ| þþƷ˵| Ʒ㽶߹ۿ| ߹ۿһ| ˾Ʒۺں| Ļۺ234| žѹۿ嶯4| һƬѿ| ߹ۿƵ| ˳Ļ߹ۿ| ɬɬƵ| þ91ѹۿ| aƬձþ| ް߹ۿ| ߾Ʒһ| ŷһëƬ| 100018Ƶ | Ʒҹ| ɫWWWַ| լ666ѹۿ| ëƬȫ| Ļaѿ | ޾ƷŮ߹ۿ| Ƶ߲| ҹƵѳ| Ļ| Ƶ| վɫƵѹۿ45| ѧһ| ѾƵ߹ۿ| JLZZJLZZ| ɫˬƵ| 24Сʱֱ߹ۿ|