<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>飞鸟</title>
	<atom:link href="http://blog.donews.com/airu/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.donews.com/airu</link>
	<description>一个人的日记</description>
	<lastBuildDate>Fri, 29 Feb 2008 05:00:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Swing之JFileChooser</title>
		<link>http://blog.donews.com/airu/archive/2008/02/29/1257113.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2008/02/29/1257113.aspx#comments</comments>
		<pubDate>Fri, 29 Feb 2008 05:00:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2008/02/29/1257113.aspx</guid>
		<description><![CDATA[Swing的JFileChooser的一个例子。增加了图片浏览的功能。
很有用哦。]]></description>
			<content:encoded><![CDATA[<p>最近学习Swing，写了个文件选种器，可以浏览图片哦。很粗糙，不过很有意思。<br />首先是一个JPanel的继承类。用来设置文件选择器JFileChooser</p>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><span style="color: rgb(0, 128, 128);">&nbsp;1</span><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;book.swing.jfilechooser;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;2</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /><br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;3</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;javax.swing.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;4</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;javax.swing.border.BevelBorder;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;5</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;6</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.awt.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;7</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.awt.event.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;8</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.beans.PropertyChangeEvent;<br />  </span><span style="color: rgb(0, 128, 128);">&nbsp;9</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.beans.PropertyChangeListener;<br />  </span><span style="color: rgb(0, 128, 128);">10</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /><br />  </span><span style="color: rgb(0, 128, 128);">11</span><span style="color: rgb(0, 0, 0);"><img align="top" id="Codehighlighter1_315_1450_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_315_1450_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_315_1450_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_315_1450_Closed_Text').style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" /><img align="top" id="Codehighlighter1_315_1450_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_315_1450_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_315_1450_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_315_1450_Open_Text').style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" alt="" /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageAccessory&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;JPanel&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;PropertyChangeListener</span><span id="Codehighlighter1_315_1450_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_315_1450_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  </span><span style="color: rgb(0, 128, 128);">12</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" /><br />  </span><span style="color: rgb(0, 128, 128);">13</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Icon&nbsp;icon;<br />  </span><span style="color: rgb(0, 128, 128);">14</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;JLabel&nbsp;imageName;<br />  </span><span style="color: rgb(0, 128, 128);">15</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;JLabel&nbsp;imageLabel;<br />  </span><span style="color: rgb(0, 128, 128);">16</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;JScrollPane&nbsp;scrollpane;<br />  </span><span style="color: rgb(0, 128, 128);">17</span><span style="color: rgb(0, 0, 0);"><img align="top" id="Codehighlighter1_450_868_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_450_868_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_450_868_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_450_868_Closed_Text').style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" /><img align="top" id="Codehighlighter1_450_868_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_450_868_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_450_868_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_450_868_Open_Text').style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageAccessory()</span><span id="Codehighlighter1_450_868_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_450_868_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  </span><span style="color: rgb(0, 128, 128);">18</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setLayout(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;BorderLayout());<br />  </span><span style="color: rgb(0, 128, 128);">19</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageIcon(</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">/home/madic/adapter.png</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">);<br />  </span><span style="color: rgb(0, 128, 128);">20</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageLabel&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;JLabel(icon);<br />  </span><span style="color: rgb(0, 128, 128);">21</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;imagePanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));</span><span style="color: rgb(0, 128, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">22</span><span style="color: rgb(0, 128, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageLabel.setBorder(BorderFactory.createLineBorder(Color.green));<br />  </span><span style="color: rgb(0, 128, 128);">23</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollpane&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;JScrollPane(imageLabel);<br />  </span><span style="color: rgb(0, 128, 128);">24</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(imageName&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;JLabel(</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">imagename</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">),&nbsp;BorderLayout.NORTH);<br />  </span><span style="color: rgb(0, 128, 128);">25</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(scrollpane,&nbsp;BorderLayout.CENTER);<br />  </span><span style="color: rgb(0, 128, 128);">26</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">27</span><span style="color: rgb(0, 0, 0);"><img align="top" id="Codehighlighter1_920_1447_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_920_1447_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_920_1447_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_920_1447_Closed_Text').style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" /><img align="top" id="Codehighlighter1_920_1447_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_920_1447_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_920_1447_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_920_1447_Open_Text').style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;propertyChange(PropertyChangeEvent&nbsp;pe)</span><span id="Codehighlighter1_920_1447_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_920_1447_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  </span><span style="color: rgb(0, 128, 128);">28</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(pe.getPropertyName().equals(<br />  </span><span style="color: rgb(0, 128, 128);">29</span><span style="color: rgb(0, 0, 0);"><img align="top" id="Codehighlighter1_1005_1444_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1005_1444_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1005_1444_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1005_1444_Closed_Text').style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" /><img align="top" id="Codehighlighter1_1005_1444_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1005_1444_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1005_1444_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1005_1444_Open_Text').style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))</span><span id="Codehighlighter1_1005_1444_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1005_1444_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  </span><span style="color: rgb(0, 128, 128);">30</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;f&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(File)pe.getNewValue();<br />  </span><span style="color: rgb(0, 128, 128);">31</span><span style="color: rgb(0, 0, 0);"><img align="top" id="Codehighlighter1_1057_1075_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1057_1075_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1057_1075_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1057_1075_Closed_Text').style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" /><img align="top" id="Codehighlighter1_1057_1075_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1057_1075_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1057_1075_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1057_1075_Open_Text').style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(f</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">)</span><span id="Codehighlighter1_1057_1075_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1057_1075_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  </span><span style="color: rgb(0, 128, 128);">32</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">;<br />  </span><span style="color: rgb(0, 128, 128);">33</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">34</span><span style="color: rgb(0, 0, 0);"><img align="top" id="Codehighlighter1_1099_1440_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1099_1440_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1099_1440_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1099_1440_Closed_Text').style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" /><img align="top" id="Codehighlighter1_1099_1440_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1099_1440_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1099_1440_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1099_1440_Open_Text').style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 0);">!</span><span style="color: rgb(0, 0, 0);">f.isDirectory())</span><span id="Codehighlighter1_1099_1440_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1099_1440_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  </span><span style="color: rgb(0, 128, 128);">35</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(f.getAbsolutePath());<br />  </span><span style="color: rgb(0, 128, 128);">36</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageName.setText(f.getName());<br />  </span><span style="color: rgb(0, 128, 128);">37</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageIcon&nbsp;ii&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageIcon(f.getAbsolutePath());<br />  </span><span style="color: rgb(0, 128, 128);">38</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;image&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;ii.getImage().getScaledInstance(</span><span style="color: rgb(0, 0, 0);">200</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">300</span><span style="color: rgb(0, 0, 0);">,&nbsp;Image.SCALE_DEFAULT);<br />  </span><span style="color: rgb(0, 128, 128);">39</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ii.setImage(image);<br />  </span><span style="color: rgb(0, 128, 128);">40</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;ii;<br />  </span><span style="color: rgb(0, 128, 128);">41</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageLabel.setIcon(icon);<br />  </span><span style="color: rgb(0, 128, 128);">42</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageLabel.updateUI();<br />  </span><span style="color: rgb(0, 128, 128);">43</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.updateUI();<br />  </span><span style="color: rgb(0, 128, 128);">44</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">45</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">46</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">47</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/InBlock.gif" alt="" /><br />  </span><span style="color: rgb(0, 128, 128);">48</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" />}</span></span><span style="color: rgb(0, 0, 0);"><br />  </span><span style="color: rgb(0, 128, 128);">49</span><span style="color: rgb(0, 0, 0);"><img align="top" src="/Images/OutliningIndicators/None.gif" alt="" /></span></div>
<p>下面就是一个演示JFileChooser的例子了：</p>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;book.swing.jfilechooser;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /><br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;javax.swing.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /><br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.awt.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.awt.event.</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /><br />  <img align="top" alt="" src="/Images/OutliningIndicators/None.gif" /><br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_147_1244_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_147_1244_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_147_1244_Closed_Text').style.display='inline';" id="Codehighlighter1_147_1244_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_147_1244_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_147_1244_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_147_1244_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_147_1244_Closed_Image" /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageFileChooser&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;JFrame</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_147_1244_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_147_1244_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;JButton&nbsp;open;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;JFrame&nbsp;parent;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;JLabel&nbsp;statusbar;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_255_1153_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_255_1153_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_255_1153_Closed_Text').style.display='inline';" id="Codehighlighter1_255_1153_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedSubBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_255_1153_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_255_1153_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_255_1153_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_255_1153_Closed_Image" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageFileChooser()</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_255_1153_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_255_1153_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">ImageFileChooser</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statusbar&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;JLabel(<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">Output&nbsp;of&nbsp;your&nbsp;selection&nbsp;will&nbsp;go&nbsp;here</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Container&nbsp;c&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;getContentPane();<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.setLayout(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;FlowLayout());<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;JButton(</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">Open</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_566_1090_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_566_1090_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_566_1090_Closed_Text').style.display='inline';" id="Codehighlighter1_566_1090_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedSubBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_566_1090_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_566_1090_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_566_1090_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_566_1090_Closed_Image" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open.addActionListener(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ActionListener()</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_566_1090_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_566_1090_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_613_1086_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_613_1086_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_613_1086_Closed_Text').style.display='inline';" id="Codehighlighter1_613_1086_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedSubBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_613_1086_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_613_1086_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_613_1086_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_613_1086_Closed_Image" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;actionPerformed(ActionEvent&nbsp;e)</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_613_1086_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_613_1086_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JFileChooser&nbsp;chooser&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;JFileChooser();<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageAccessory&nbsp;ia&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageAccessory();<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chooser.setAccessory(ia);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chooser.addPropertyChangeListener(ia);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;option&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;chooser.showOpenDialog(parent);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_875_1027_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_875_1027_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_875_1027_Closed_Text').style.display='inline';" id="Codehighlighter1_875_1027_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedSubBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_875_1027_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_875_1027_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_875_1027_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_875_1027_Closed_Image" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(option&nbsp;</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">&nbsp;JFileChooser.APPROVE_OPTION)</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_875_1027_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_875_1027_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statusbar.setText(</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">You&nbsp;chose&nbsp;</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);"><br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;((chooser.getSelectedFile()&nbsp;</span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span style="color: rgb(0, 0, 0);">?</span><span style="color: rgb(0, 0, 0);">&nbsp;chooser<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getSelectedFile().getName()&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">nothing</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">));<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1033_1081_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1033_1081_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1033_1081_Closed_Text').style.display='inline';" id="Codehighlighter1_1033_1081_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedSubBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1033_1081_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1033_1081_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1033_1081_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_1033_1081_Closed_Image" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1033_1081_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1033_1081_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statusbar.setText(</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">You&nbsp;canceled.</span><span style="color: rgb(0, 0, 0);">&quot;</span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.add(open);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.add(statusbar);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setSize(</span><span style="color: rgb(0, 0, 0);">200</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">300</span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1195_1242_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1195_1242_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1195_1242_Closed_Text').style.display='inline';" id="Codehighlighter1_1195_1242_Open_Image" /><img align="top" alt="" src="/Images/OutliningIndicators/ContractedSubBlock.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1195_1242_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1195_1242_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1195_1242_Open_Text').style.display='inline';" style="display: none;" id="Codehighlighter1_1195_1242_Closed_Image" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String[]&nbsp;args)</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1195_1242_Closed_Text"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1195_1242_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />  <img align="top" alt="" src="/Images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ImageFileChooser().setVisible(</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">);<br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />  <img align="top" alt="" src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p>关键在于 需要设置JFileChooser的 accessory属性，我们在这个JPanel中来实现我们的东西。还要注意的是我们的JPanel类需要实现一个PropertyChangeListener类，这样，当你选择改变的时候，就可以在函数<br />propertyChange(PropertyChangeEvent ev)中实现动作了。<br />其中注意getScaledInstance(200, 300, Image.SCALE_DEFAULT);这个函数主要用来设置图片的大小。最后一个参数：Image.SCALE_DEFAULT是改变图像大小的算法。<br />要点就这么多。呵呵。试试看。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2008/02/29/1257113.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>数列极限</title>
		<link>http://blog.donews.com/airu/archive/2008/01/26/1249203.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2008/01/26/1249203.aspx#comments</comments>
		<pubDate>Sat, 26 Jan 2008 00:12:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[道]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2008/01/26/1249203.aspx</guid>
		<description><![CDATA[数列极限的定义]]></description>
			<content:encoded><![CDATA[<p>设数列{Xn}，a是常数。若对于任意给定的&euro;&gt;0 ，总存在一个正整数N，使得当一切n&gt;N时，有：</p>
<p align="center"><strong>&nbsp;|Xn-a|&lt;&euro;</strong></p>
<p align="left">则称a为数列{Xn}的极限，记为：省略。哈哈。</p>
<p align="left">很有意思。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2008/01/26/1249203.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>telnet 的终端问题</title>
		<link>http://blog.donews.com/airu/archive/2008/01/25/1249130.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2008/01/25/1249130.aspx#comments</comments>
		<pubDate>Fri, 25 Jan 2008 08:42:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2008/01/25/1249130.aspx</guid>
		<description><![CDATA[vt320,telnet的问题。]]></description>
			<content:encoded><![CDATA[<p>如果你telnet遇到某些命令执行不了。<br />返回错误为： &#8216;vt320&#8242;: unknown terminal type<br />那么可能是你telnet的主机没有安装某个终端。如果你在ubuntu下，试用如下命令<br />sudo apt-get install ncurses-term<br />安装完成后就OK了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2008/01/25/1249130.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux的dd命令用法</title>
		<link>http://blog.donews.com/airu/archive/2008/01/12/1245733.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2008/01/12/1245733.aspx#comments</comments>
		<pubDate>Sat, 12 Jan 2008 14:35:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2008/01/12/1245733.aspx</guid>
		<description><![CDATA[dd命令
dd后面的参数。呵呵]]></description>
			<content:encoded><![CDATA[<p>dd真的很好用</p>
<pre>if=  输入文件（或设备名称）。 of=  输出文件（或设备名称）。 ibs=bytes   一次读取bytes字节，即读入缓冲区的字节数。 skip=blocks 跳过读入缓冲区开头的ibs*blocks块。 obs=bytes   一次写入bytes字节，即写入缓冲区的字节数。 bs=bytes    同时设置读/写缓冲区的字节数（等于设置ibs和obs）。 cbs=byte    一次转换bytes字节。 count=blocks 只拷贝输入的blocks块。 conv=ASCII  把EBCDIC码转换为ASCIl码。 conv=ebcdic 把ASCIl码转换为EBCDIC码。 conv=ibm    把ASCIl码转换为alternate EBCDIC码。 conv=block  把变动位转换成固定字符。 conv=ublock 把固定位转换成变动位。 conv=ucase  把字母由小写转换为大写。 conv=lcase  把字母由大写转换为小写。 conv=notrunc 不截短输出文件。 conv=swab    交换每一对输入字节。 conv=noerror 出错时不停止处理。 conv=sync    把每个输入记录的大小都调到ibs的大小（用NUL填充）。</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2008/01/12/1245733.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ubuntu增加swap分区</title>
		<link>http://blog.donews.com/airu/archive/2007/12/28/1240974.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2007/12/28/1240974.aspx#comments</comments>
		<pubDate>Fri, 28 Dec 2007 09:44:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2007/12/28/1240974.aspx</guid>
		<description><![CDATA[像增加swap分区吗？使用后可以卸载掉哦]]></description>
			<content:encoded><![CDATA[<p>在这篇日志<a href="http://www.oceanboo.cn/read.php/160.htm">安装Oracle 10g XE on Debian/Ubuntu</a>中，在 apt 安装 oracle-xe-client 时，有可能会出现如下的错误，提示 Swap 分区没有达到要求的大小，安装无法继续。<br />
<blockquote>
<p>引用<br /> This system does not meet the minimum requirements for swap space. Based on the amount of physical memory available on the system, Oracle Client 10g Express Edition requires 1024 MB of swap space. This system has 951 MB of swap space. Configure more swap space on the system and retry the installation.</p>
</blockquote>
<p>下面我们就来增加系统的 Swap 大小。</p>
<p>1.首先用命令free查看系统内 Swap 分区大小。<br /> <code>free -m</code></p>
<blockquote>
<p>引用</p>
<p>total       used       free     shared    buffers     cached<br /> Mem:          1002        964         38          0         21        410<br /> -/+ buffers/cache:        532        470<br /> Swap:          951         32        929</p>
</blockquote>
<p>可以看到 Swap 只有951M，不符合 Oracle-xe-client 的安装要求。</p>
<p>2.创建一个 Swap 文件。<br /> <code>mkdir swap<br /> cd swap<br /> sudo dd if=/dev/zero of=swapfile bs=1024 count=100000</code></p>
<p>出现下列提示，上面命令中的 count 即代表swap文件大小。</p>
<blockquote>
<p> 引用<br /> 记录了 100000+0 的读入<br /> 记录了 100000+0 的写出<br /> 102400000 字节 (102 MB) 已复制，0.74704 秒，137 MB/秒</p>
</blockquote>
<p>把生成的文件转换成 Swap 文件<br /> <code>sudo mkswap swapfile</code></p>
<blockquote>
<p>引用<br /> Setting up swapspace version 1, size = 102395 kB<br /> no label, UUID=09fde987-5567-498a-a60b-477e302a988b</p>
</blockquote>
<p>3.激活 Swap 文件。<br /> <code>sudo swapon swapfile</code></p>
<p>再次查看 free -m 的结果。</p>
<blockquote>
<p>引用<br /> total       used       free     shared    buffers     cached<br /> Mem:          1002        967         34          0         22        410<br /> -/+ buffers/cache:        534        467<br /> Swap:         1053        32       1021</p>
</blockquote>
<p>添加成功。</p>
<p>扩展：<br /> 如果需要卸载这个 swap 文件，可以进入建立的 swap 文件目录。执行下列命令。<br /> <code>sudo swapoff swapfile</code></p>
<p>如果需要一直保持这个 swap ，可以把它写入 /etc/fstab 文件。</p>
<blockquote>
<p>引用<br /> swapfilepath               swap                    swap    defaults        0 0</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2007/12/28/1240974.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bochs 调试</title>
		<link>http://blog.donews.com/airu/archive/2007/12/25/1239797.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2007/12/25/1239797.aspx#comments</comments>
		<pubDate>Tue, 25 Dec 2007 02:57:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2007/12/25/1239797.aspx</guid>
		<description><![CDATA[可调试的Bochs在编译的时候就要确定哦。使用 --enable-debugger --enable-disasm 后面一个应该是允许反汇编吧。详细请看内容。]]></description>
			<content:encoded><![CDATA[<p>在Linux下的Bochs没有bochsdbg.exe(调试模式)，bochs.exe这些东西。当需要调试的时候，需要在编译的时候指定可调试&#8211;enable-debugger &#8211;enable-disasm 选项，即可使用bochs调试了，即，在configure时指定上述两个参数。<br />下面是某个blogger的例子： ./configure &#8211;with-all-libs &#8211;prefix=/usr/local/bochs-2.3.5 &#8211;enable-show-ips &#8211;enable-x86-debugger &#8211;enable-cdrom &#8211;enable-debugger &#8211;enable-disasm<br />具体的调试命令还正准备学习。呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2007/12/25/1239797.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>磁盘拷贝的BIOS中断调用方法</title>
		<link>http://blog.donews.com/airu/archive/2007/12/24/1239518.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2007/12/24/1239518.aspx#comments</comments>
		<pubDate>Mon, 24 Dec 2007 03:29:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2007/12/24/1239518.aspx</guid>
		<description><![CDATA[通过BIOS的中断调用 int 0x13 读磁盘数据到内存]]></description>
			<content:encoded><![CDATA[<p>利用BIOS的0&#215;13号中断，我们可以从磁盘拷贝数据到内存。</p>
<p>BIOS自检的时候，就把磁盘的信息（所有硬件信息）都获取了。所以之后我们就可以通过BIOS中断来获取这些数据。但是要如何取得这些数据呢？</p>
<p>在调用中断int之前，我们要设置一些寄存器，这些寄存器就可以看作是参数，当然执行int调用以后，也要从这些寄存器获得参数。</p>
<p>这里顺便说一下，IBM PC机 启动后，bios会自己把磁盘的引导区即 0柱面 0磁道 1扇区 ，512字节（含引导程序和分区信息）加载到内存的0&#215;07c0的位置。</p>
<p>load_setup:<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dx,#0&#215;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! drive 0, head 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; cx,#0&#215;0002&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! sector 2, track 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; bx,#0&#215;0200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! address = 512, in INITSEG<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; ax,#0&#215;0200+SETUPLEN&nbsp;&nbsp;&nbsp;&nbsp; ! service 2, nr of sectors<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nbsp; 0&#215;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! read it<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnc&nbsp;&nbsp;&nbsp;&nbsp; ok_load_setup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! ok &#8211; continue<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dx,#0&#215;0000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; ax,#0&#215;0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ! reset the diskette<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nbsp; 0&#215;13<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; load_setup<br />上面的一段代码摘自 linux 0.11 内核的源码。我们可以看到<br />各个寄存器所保存的参数：<br />&nbsp;&nbsp;&nbsp; dl 驱动器号(7代表硬盘） dh磁头号 cl 扇区号（0-5，6-7是柱面号高2位） ch 磁道号 bx 缓存（内存地址） ah 服务号（表示读磁盘） 。如果出错 ，CF置位。<br />注意一点，数据拷贝到内存的 es:bx的地方。所以注意设置es</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2007/12/24/1239518.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>集族与指标集</title>
		<link>http://blog.donews.com/airu/archive/2007/12/07/1234714.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2007/12/07/1234714.aspx#comments</comments>
		<pubDate>Fri, 07 Dec 2007 00:25:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2007/12/07/1234714.aspx</guid>
		<description><![CDATA[集族 和 指标集的理解。集合的东西。]]></description>
			<content:encoded><![CDATA[<p>&nbsp;若集合C的元素本身都是结合X的子集，则称C为集合X上的一个集族。</p>
<p>设有一个集合A，称为指标集。使得对于指标集A中的每一个元素&pound;，有X上的一个子集B&pound;与之对应，这样就得到X上的一个集族。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&pound; 即为 C</p>
<p>&nbsp;</p>
<p>可以这样想，那么就是</p>
<p>X={张三，李斯，王二，赵六，小五，大头}&nbsp;&nbsp;&nbsp; &#8212;-集合X</p>
<p>好人={张三，李斯，赵六}&nbsp;&nbsp;&nbsp; &#8212;集合X的子集</p>
<p>坏人={王二，大头，小五}&nbsp;&nbsp; &#8212;-结合X的子集</p>
<p>C={好人，坏人}&nbsp;&nbsp;&nbsp; &#8212;-集族</p>
<p>C1={好人}</p>
<p>C2={坏人}</p>
<p>A={张三，李斯，赵六}&nbsp; &#8212;-指标集</p>
<p>&nbsp;</p>
<p>集族是一个集合的分类集合。而指标集是指确定分类的具体集合元素。</p>
<p>在指标集A确定的集族应该是C1，因为A里的元素都是属于子集好人。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2007/12/07/1234714.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facade</title>
		<link>http://blog.donews.com/airu/archive/2007/11/06/1225856.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2007/11/06/1225856.aspx#comments</comments>
		<pubDate>Tue, 06 Nov 2007 05:53:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2007/11/06/1225856.aspx</guid>
		<description><![CDATA[Facade 模式是 关于接口的问题。使得分散的、杂乱的、或者复杂的东西被统一起来。
使用Facade模式，可以灵活的根据用户需求变换Facade，而不改变系统。]]></description>
			<content:encoded><![CDATA[<p>1 与其说这是一个模式，不如说这是一种方法。Facade 字面意思是外观，外表。我们要做的就是给用户看的东西。客户不需要深入。如同我们给一个主机做各种不同的机箱，用户关心的是电源接口，鼠标、键盘接口，USB，显示器接口等等。如果有客户只要usb接口，那么我们可能就只需要做有一个USB接口的机箱（当然不可能）就可以了。Facade还不仅仅如此。</p>
<p>2、好了，现在来说Facade模式。有的时候，当我们面对与一个复杂系统交互的时候，一定会很难捉摸，如果这个时候我们把这个复杂系统的大量的API都简化成少量我们需要的API，那么，我们就可以不用关心这个系统有多么复杂，我们只需要关心我们的东西和如何用这些精简的API达成我们的目的了。Facade模式便是把那些复杂的东西用接口统一起来，而我们的东西不用和太多的东西打交道。</p>
<p>&nbsp;<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/sweetdream/facade.PNG" /></p>
<p>3、Facade模式的功用，首先，化复杂为实用，简洁。其次，减少对象的交互；再次，封装，为我们要隐藏的东西披上外衣。扩展开来，不仅能化简，而且可以添加新的功能，或者应对变化而更换Facade。</p>
<p>4、生活中，我们随处可见。总经理在面对公司各个部门时，部门的Facade就是部门经理，当然，公司总裁看到的公司的Facade便是总经理。或者我们使用的操作系统，我们可能调用某个API实现某个功能，而不是直接深入到操作系统内部，这些API便是操作系统的Facade。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2007/11/06/1225856.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>设计模式</title>
		<link>http://blog.donews.com/airu/archive/2007/10/29/1223886.aspx</link>
		<comments>http://blog.donews.com/airu/archive/2007/10/29/1223886.aspx#comments</comments>
		<pubDate>Mon, 29 Oct 2007 06:25:00 +0000</pubDate>
		<dc:creator>airu</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://blog.donews.com/airu/archive/2007/10/29/1223886.aspx</guid>
		<description><![CDATA[软件设计的小窍门，开阔思想的小甜点]]></description>
			<content:encoded><![CDATA[<p>以前一直都看不懂，总觉得太抽象，或者觉得没有多少用。然后等到现在，总算接触了一些比较复杂的系统，然后突然明白了设计模式的用处。</p>
<p>其实设计模式没有什么难的。可能以前你就用了很多个。其实如果你没有写过很复杂的系统，或者深入学习过一些大的系统，可能你对设计模式的理解还很有限，即使看过书，也很快忘记了。所以这里我也不仔细说设计模式的细节。</p>
<p>其实设计模式（GOF）主要是针对面向对象的程序设计方法。其实也不过是一些解决方案的核心。比如一个很小的单例模式，够小了吧，但是这类问题却实在众多设计中常常要用到的。</p>
<p>关于模式，其实我们不需要去一个一个记住。我想记住他们的分类就差不多了。</p>
<p>1、创建型</p>
<p>2、结构型</p>
<p>3、行为型</p>
<p>当你觉得自己的某个设计很糟糕的时候，再想想设计模式吧，看看他们是如何帮你解决问题的。这样用一次，就足够你记住很长时间了。如果你觉得自己的设计已经很完美了，那么做完以后再看看（设计模式）是否如此。</p>
<p>当然，如果你熟悉面向对象的程序设计和UML，那么设计模式一看便知，是一种简洁的美。你也可以在这些核心的基础上扩展他们吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/airu/archive/2007/10/29/1223886.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

