﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-hkbmwcn</title><link>http://www.blogjava.net/hkbmwcn/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:04:50 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:04:50 GMT</pubDate><ttl>60</ttl><item><title>关于JInternalFrame去掉Title bar的问题</title><link>http://www.blogjava.net/hkbmwcn/archive/2008/01/18/176341.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Fri, 18 Jan 2008 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2008/01/18/176341.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/176341.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2008/01/18/176341.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/176341.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/176341.html</trackback:ping><description><![CDATA[自己实在是个懒人，blog难得更新一次，更新也是一些鸡毛蒜皮的小东西。不过还是希望能对其他朋友或自己将来遇到类似问题能有个解答。最新在做一个swing项目，客户要求能把JInternalFrame的Title bar去掉，同时还能加回来。由于网上搜一下没有找到解决办法，只能自己研究一下并改了下JInternalFrame,先记录如下：<br />
<br />
<br />
import java.awt.BorderLayout;<br />
import java.awt.Dimension;<br />
import java.awt.Font;<br />
import java.awt.Rectangle;<br />
import java.awt.event.ComponentEvent;<br />
import java.awt.peer.ComponentPeer;<br />
import java.beans.PropertyVetoException;<br />
<br />
import javax.swing.ActionMap;<br />
import javax.swing.BorderFactory;<br />
import javax.swing.JComponent;<br />
import javax.swing.JDesktopPane;<br />
import javax.swing.JInternalFrame;<br />
import javax.swing.UIManager;<br />
import javax.swing.plaf.InternalFrameUI;<br />
import javax.swing.plaf.basic.BasicInternalFrameUI;<br />
<br />
public class MCOCInternalFrame extends JInternalFrame {<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;//private String lookAndFeel = null;<br />
&nbsp;&nbsp; &nbsp;BasicInternalFrameUI orgUi = null;<br />
&nbsp;&nbsp; &nbsp;BasicInternalFrameUI newUi = null;<br />
&nbsp;&nbsp; &nbsp;JComponent northPanel = null;<br />
&nbsp;&nbsp; &nbsp;private boolean isHidden = false;<br />
<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;public MCOCInternalFrame() {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;super();<br />
<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;northPanel = ((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).getNorthPane();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;orgUi = ((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI());<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;newUi = new BasicInternalFrameUI(this);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;public void showNorthPanel() {<br />
<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.setUI(orgUi);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.putClientProperty("JInternalFrame.isPalette", Boolean.FALSE); <br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;isHidden = false;<br />
<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;public void hideNorthPanel() {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.setUI(newUi);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).setNorthPane(null);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE); <br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;isHidden = true;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp; public void updateUI() {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.updateUI();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isHidden) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;hideNorthPanel();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp; &nbsp; }<br />
<br />
<br />
}<br />
<br />
创建该InternalFrame对象后，通过showNorthPanel(), hideNorthPanel()来显示或隐藏title bar,另外updateUI()重写是因为界面被动态改变lookandfeel时，保证title bar上多的一小个bar出现。<br />
<br />
<br />
<img src ="http://www.blogjava.net/hkbmwcn/aggbug/176341.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2008-01-18 22:02 <a href="http://www.blogjava.net/hkbmwcn/archive/2008/01/18/176341.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javax mail 发送邮件及附件</title><link>http://www.blogjava.net/hkbmwcn/archive/2008/01/18/133262.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Fri, 18 Jan 2008 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2008/01/18/133262.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/133262.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2008/01/18/133262.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/133262.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/133262.html</trackback:ping><description><![CDATA[<p>MailSender.java<br />
<br />
import java.util.ArrayList;<br />
import java.util.Iterator;<br />
import java.util.Properties;</p>
<p>import javax.activation.DataHandler;<br />
import javax.activation.DataSource;<br />
import javax.activation.FileDataSource;<br />
import javax.mail.MessagingException;<br />
import javax.mail.Session;<br />
import javax.mail.Transport;<br />
import javax.mail.internet.AddressException;<br />
import javax.mail.internet.InternetAddress;<br />
import javax.mail.internet.MimeBodyPart;<br />
import javax.mail.internet.MimeMessage;<br />
import javax.mail.internet.MimeMultipart;</p>
<p>import org.apache.log4j.Logger;</p>
<p>public class MailSender {<br />
&nbsp;public static Logger logger = Logger.getLogger(MailSender.class);<br />
&nbsp;public static boolean send(Mail mail) throws Exception {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Properties props = new Properties();<br />
&nbsp;&nbsp;&nbsp;props.put("mail.smtp.host", "localhost");<br />
&nbsp;&nbsp;&nbsp;Session session = Session.getDefaultInstance(props, null);<br />
&nbsp;&nbsp;&nbsp;MimeMessage mimemessage = new MimeMessage(session);<br />
&nbsp;&nbsp;&nbsp;mimemessage.setFrom(new InternetAddress(mail.getFrom()));<br />
&nbsp;&nbsp;&nbsp;mimemessage.setSentDate(mail.getDate());<br />
&nbsp;&nbsp;&nbsp;// set SUBJECT<br />
&nbsp;&nbsp;&nbsp;mimemessage.setSubject(mail.getSubject());</p>
<p>&nbsp;&nbsp;&nbsp;// set TO address<br />
&nbsp;&nbsp;&nbsp;String mailto = mail.getTo();<br />
&nbsp;&nbsp;&nbsp;String ccmailid = mail.getCcusers();<br />
&nbsp;&nbsp;&nbsp;String strResult = "";<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;mimemessage.setRecipients(javax.mail.Message.RecipientType.TO,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailto);<br />
&nbsp;&nbsp;&nbsp;} catch (Exception exception1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;throw exception1;<br />
&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;// set message BODY<br />
&nbsp;&nbsp;&nbsp;MimeBodyPart mimebodypart = new MimeBodyPart();<br />
&nbsp;&nbsp;&nbsp;mimebodypart.setText(mail.getContent());</p>
<p>&nbsp;&nbsp;&nbsp;// attach message BODY<br />
&nbsp;&nbsp;&nbsp;MimeMultipart mimemultipart = new MimeMultipart();<br />
&nbsp;&nbsp;&nbsp;mimemultipart.addBodyPart(mimebodypart);</p>
<p>&nbsp;&nbsp;&nbsp;// attach FILE<br />
&nbsp;&nbsp;&nbsp;ArrayList attachedFileList = mail.getAttachedFileList();<br />
&nbsp;&nbsp;&nbsp;if (attachedFileList != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataSource ds = null;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for (Iterator e = attachedFileList.iterator(); e.hasNext();) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds = (DataSource) e.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mimebodypart = new MimeBodyPart();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mimebodypart.setDataHandler(new DataHandler(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception exception3) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw exception3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mimebodypart.setFileName(ds.getName()); // set FILENAME<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mimemultipart.addBodyPart(mimebodypart);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}// end if<br />
&nbsp;&nbsp;&nbsp;mimemessage.setContent(mimemultipart);<br />
&nbsp;&nbsp;&nbsp;// set CC MAIL and SEND the mail<br />
&nbsp;&nbsp;&nbsp;if (!mailto.equals("")) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;// set CC MAIL<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (ccmailid != null &amp;&amp; (!ccmailid.equals("")))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mimemessage.setRecipients(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;javax.mail.Message.RecipientType.CC, ccmailid);<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// send MAIL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transport.send(mimemessage);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(mailto + " Sent Successfully..........");<br />
&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception exception4) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw exception4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;logger.info(mailto + " Mail operation Failed..........");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;throw e;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return true;<br />
&nbsp;}</p>
<p>}<br />
<br />
Mail.java<br />
import java.util.ArrayList;<br />
import java.util.Date;<br />
import java.util.StringTokenizer;</p>
<p>public class Mail {<br />
&nbsp;<br />
&nbsp;private String from = null;<br />
&nbsp;private String to = null;<br />
&nbsp;private String subject = null;<br />
&nbsp;private String content = null;<br />
&nbsp;private String ccusers = null;<br />
&nbsp;private ArrayList attachedFileList = null;<br />
&nbsp;private Date date = null;</p>
<p>&nbsp;public Mail() {<br />
&nbsp;&nbsp;// TODO Auto-generated constructor stub<br />
&nbsp;}</p>
<p>&nbsp;public ArrayList getAttachedFileList() {<br />
&nbsp;&nbsp;return attachedFileList;<br />
&nbsp;}</p>
<p>&nbsp;public void setAttachedFileList(ArrayList attachedFileList) {<br />
&nbsp;&nbsp;this.attachedFileList = attachedFileList;<br />
&nbsp;}</p>
<p>&nbsp;</p>
<p><br />
&nbsp;public String getContent() {<br />
&nbsp;&nbsp;return content;<br />
&nbsp;}</p>
<p>&nbsp;public void setContent(String content) {<br />
&nbsp;&nbsp;this.content = content;<br />
&nbsp;}</p>
<p>&nbsp;public String getFrom() {<br />
&nbsp;&nbsp;return from;<br />
&nbsp;}</p>
<p>&nbsp;public void setFrom(String from) {<br />
&nbsp;&nbsp;this.from = from;<br />
&nbsp;}</p>
<p>&nbsp;public String getSubject() {<br />
&nbsp;&nbsp;return subject;<br />
&nbsp;}</p>
<p>&nbsp;public void setSubject(String subject) {<br />
&nbsp;&nbsp;this.subject = subject;<br />
&nbsp;}</p>
<p>&nbsp;public String getTo() {<br />
&nbsp;&nbsp;return to;<br />
&nbsp;}</p>
<p>&nbsp;public void setTo(String to) {<br />
&nbsp;&nbsp;this.to = to;<br />
&nbsp;}</p>
<p>&nbsp;public Date getDate() {<br />
&nbsp;&nbsp;return date;<br />
&nbsp;}</p>
<p>&nbsp;public void setDate(Date date) {<br />
&nbsp;&nbsp;this.date = date;<br />
&nbsp;}</p>
<p>&nbsp;public String getCcusers() {<br />
&nbsp;&nbsp;return ccusers;<br />
&nbsp;}</p>
<p>&nbsp;public void setCcusers(String ccusers) {<br />
&nbsp;&nbsp;this.ccusers = ccusers;<br />
&nbsp;}</p>
<p>}<br />
<br />
<br />
<br />
<br />
</p>
<img src ="http://www.blogjava.net/hkbmwcn/aggbug/133262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2008-01-18 21:50 <a href="http://www.blogjava.net/hkbmwcn/archive/2008/01/18/133262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>密码的加解密</title><link>http://www.blogjava.net/hkbmwcn/archive/2007/07/30/133259.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Mon, 30 Jul 2007 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2007/07/30/133259.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/133259.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2007/07/30/133259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/133259.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/133259.html</trackback:ping><description><![CDATA[<p>很长时间没有更新自己的blog了，最近忙一个基于alfreco的项目开发，赶快把用到的一些东西记录一下，谁让自己记性不好呢。这里是password的加解密:<br>PasswordUtil.java<br><br>import java.io.IOException;<br>import java.security.MessageDigest;<br>import java.security.NoSuchAlgorithmException;<br>import java.security.Security;</p>
<p>import javax.crypto.Cipher;<br>import javax.crypto.KeyGenerator;<br>import javax.crypto.SecretKey;</p>
<p>import sun.misc.BASE64Decoder;<br>import sun.misc.BASE64Encoder;</p>
<p>public class PasswordUtil {<br>&nbsp;public final static int ITERATION_NUMBER = 1000;<br>&nbsp;public static final String algorithm = "Blowfish";// we can use DES,DESede,Blowfish<br>&nbsp;<br>&nbsp;/**<br>&nbsp; * <br>&nbsp; * @param password<br>&nbsp; * @return<br>&nbsp; * @throws Exception<br>&nbsp; */<br>&nbsp;public static PasswordBean encry(String password) throws Exception {<br>&nbsp;&nbsp;Security.addProvider(new com.sun.crypto.provider.SunJCE());</p>
<p>&nbsp;&nbsp;try {<br>&nbsp;&nbsp;&nbsp;KeyGenerator keygen = KeyGenerator.getInstance(algorithm);<br>&nbsp;&nbsp;&nbsp;SecretKey deskey = keygen.generateKey();<br>&nbsp;&nbsp;&nbsp;Cipher c1 = Cipher.getInstance(algorithm);<br>&nbsp;&nbsp;&nbsp;c1.init(Cipher.ENCRYPT_MODE, deskey);<br>&nbsp;&nbsp;&nbsp;byte[] cipherByte = c1.doFinal(password.getBytes());<br>&nbsp;&nbsp;&nbsp;String saltKey = PasswordUtil.byteToBase64(deskey.getEncoded());<br>&nbsp;&nbsp;&nbsp;String pass = PasswordUtil.byteToBase64(cipherByte);<br>&nbsp;&nbsp;&nbsp;return new PasswordBean(saltKey, pass);<br>&nbsp;&nbsp;&nbsp;//System.out.println("After encry:" + key + "====" + password);<br>&nbsp;&nbsp;} catch (Exception e) {<br>&nbsp;&nbsp;&nbsp;throw e;<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;/**<br>&nbsp; * <br>&nbsp; * @param bean<br>&nbsp; * @return<br>&nbsp; * @throws Exception<br>&nbsp; */<br>&nbsp;public static String decry(PasswordBean bean) throws Exception {<br>&nbsp;&nbsp;return decry(bean.getSaltKey(), bean.getPassword());<br>&nbsp;}<br>&nbsp;<br>&nbsp;/**<br>&nbsp; * <br>&nbsp; * @param saltKey<br>&nbsp; * @param pass<br>&nbsp; * @return<br>&nbsp; * @throws Exception<br>&nbsp; */<br>&nbsp;public static String decry(String saltKey, String pass) throws Exception {<br>&nbsp;&nbsp;//Security.addProvider(new com.sun.crypto.provider.SunJCE());<br>&nbsp;&nbsp;try {<br>&nbsp;&nbsp;&nbsp;Security.addProvider(new com.sun.crypto.provider.SunJCE());<br>&nbsp;&nbsp;&nbsp;byte[] keyser = PasswordUtil.base64ToByte(saltKey);<br>&nbsp;&nbsp;&nbsp;javax.crypto.spec.SecretKeySpec destmp = new javax.crypto.spec.SecretKeySpec(keyser, algorithm);<br>&nbsp;&nbsp;&nbsp;SecretKey mydeskey = destmp;</p>
<p>&nbsp;&nbsp;&nbsp;Cipher c1 = Cipher.getInstance(algorithm);<br>&nbsp;&nbsp;&nbsp;c1.init(Cipher.DECRYPT_MODE, mydeskey);<br>&nbsp;&nbsp;&nbsp;byte[] clearByte = c1.doFinal(PasswordUtil.base64ToByte(pass));<br>&nbsp;&nbsp;&nbsp;return new String(clearByte);<br>&nbsp;&nbsp;} catch (Exception e) {<br>&nbsp;&nbsp;&nbsp;//e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;System.out.println("saltKey:" + saltKey + "&nbsp;&nbsp; pass:" + pass) ;<br>&nbsp;&nbsp;&nbsp;throw e;<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;/**<br>&nbsp; * From a password, a number of iterations and a salt, returns the<br>&nbsp; * corresponding digest<br>&nbsp; * <br>&nbsp; * @param iterationNb<br>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int The number of iterations of the algorithm<br>&nbsp; * @param password<br>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String The password to encrypt<br>&nbsp; * @param salt<br>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] The salt<br>&nbsp; * @return byte[] The digested password<br>&nbsp; * @throws NoSuchAlgorithmException<br>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the algorithm doesn't exist<br>&nbsp; */<br>&nbsp;public static byte[] getHash(int iterationNb, String password, byte[] salt)<br>&nbsp;&nbsp;&nbsp;throws NoSuchAlgorithmException {<br>&nbsp;&nbsp;MessageDigest digest = MessageDigest.getInstance("SHA-1");<br>&nbsp;&nbsp;digest.reset();<br>&nbsp;&nbsp;digest.update(salt);<br>&nbsp;&nbsp;byte[] input = digest.digest(password.getBytes());<br>&nbsp;&nbsp;for (int i = 0; i &lt; iterationNb; i++) {<br>&nbsp;&nbsp;&nbsp;digest.reset();<br>&nbsp;&nbsp;&nbsp;input = digest.digest(input);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return input;<br>&nbsp;}</p>
<p>&nbsp;/**<br>&nbsp; * From a base 64 representation, returns the corresponding byte[]<br>&nbsp; * <br>&nbsp; * @param data<br>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String The base64 representation<br>&nbsp; * @return byte[]<br>&nbsp; * @throws IOException<br>&nbsp; */<br>&nbsp;public static byte[] base64ToByte(String data) throws IOException {<br>&nbsp;&nbsp;BASE64Decoder decoder = new BASE64Decoder();<br>&nbsp;&nbsp;return decoder.decodeBuffer(data);<br>&nbsp;}</p>
<p>&nbsp;/**<br>&nbsp; * From a byte[] returns a base 64 representation<br>&nbsp; * <br>&nbsp; * @param data<br>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[]<br>&nbsp; * @return String<br>&nbsp; * @throws IOException<br>&nbsp; */<br>&nbsp;public static String byteToBase64(byte[] data) {<br>&nbsp;&nbsp;BASE64Encoder endecoder = new BASE64Encoder();<br>&nbsp;&nbsp;return endecoder.encode(data);<br>&nbsp;}<br>}<br><br>PasswordBean.java<br><br>public class PasswordBean {<br>&nbsp;<br>&nbsp;private String saltKey = null;<br>&nbsp;private String password = null;</p>
<p>&nbsp;public PasswordBean(String key, String pass) {<br>&nbsp;&nbsp;this.saltKey = key;<br>&nbsp;&nbsp;this.password = pass;<br>&nbsp;}<br>&nbsp;<br>&nbsp;public String getPassword() {<br>&nbsp;&nbsp;return password;<br>&nbsp;}<br>&nbsp;public void setPassword(String password) {<br>&nbsp;&nbsp;this.password = password;<br>&nbsp;}<br>&nbsp;public String getSaltKey() {<br>&nbsp;&nbsp;return saltKey;<br>&nbsp;}<br>&nbsp;public void setSaltKey(String saltKey) {<br>&nbsp;&nbsp;this.saltKey = saltKey;<br>&nbsp;}<br>&nbsp;<br>}<br><br><br>使用的时候可以是：<br>String password = PasswordUtil.decry(salt, encodePassword);<br>PasswordBean passwordBean = PasswordUtil.encry(password);</p>
<img src ="http://www.blogjava.net/hkbmwcn/aggbug/133259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2007-07-30 10:42 <a href="http://www.blogjava.net/hkbmwcn/archive/2007/07/30/133259.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>System.getProperty()参数大全</title><link>http://www.blogjava.net/hkbmwcn/archive/2007/03/28/107058.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Wed, 28 Mar 2007 12:12:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2007/03/28/107058.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/107058.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2007/03/28/107058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/107058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/107058.html</trackback:ping><description><![CDATA[常用到System.getProperty(), 而参数老不记得，这里贴一下，省得下次麻烦.<br /><br /><table summary="Shows property keys and associated values" border="0"><tbody><tr><td><p><font size="+0">java.version</font></p></td><td>Java Runtime Environment version</td></tr><tr><td><font size="+0">java.vendor</font></td><td>Java Runtime Environment vendor</td></tr><tr><td><font size="+0">java.vendor.url</font></td><td>Java vendor URL</td></tr><tr><td><font size="+0">java.home</font></td><td>Java installation directory</td></tr><tr><td><font size="+0">java.vm.specification.version</font></td><td>Java Virtual Machine specification version</td></tr><tr><td><font size="+0">java.vm.specification.vendor</font></td><td>Java Virtual Machine specification vendor</td></tr><tr><td><font size="+0">java.vm.specification.name</font></td><td>Java Virtual Machine specification name</td></tr><tr><td><font size="+0">java.vm.version</font></td><td>Java Virtual Machine implementation version</td></tr><tr><td><font size="+0">java.vm.vendor</font></td><td>Java Virtual Machine implementation vendor</td></tr><tr><td><font size="+0">java.vm.name</font></td><td>Java Virtual Machine implementation name</td></tr><tr><td><font size="+0">java.specification.version</font></td><td>Java Runtime Environment specification version</td></tr><tr><td><font size="+0">java.specification.vendor</font></td><td>Java Runtime Environment specification vendor</td></tr><tr><td><font size="+0">java.specification.name</font></td><td>Java Runtime Environment specification name</td></tr><tr><td><font size="+0">java.class.version</font></td><td>Java class format version number</td></tr><tr><td><font size="+0">java.class.path</font></td><td>Java class path</td></tr><tr><td><font size="+0">java.library.path</font></td><td>List of paths to search when loading libraries</td></tr><tr><td><font size="+0">java.io.tmpdir</font></td><td>Default temp file path</td></tr><tr><td><font size="+0">java.compiler</font></td><td>Name of JIT compiler to use</td></tr><tr><td><font size="+0">java.ext.dirs</font></td><td>Path of extension directory or directories</td></tr><tr><td><font size="+0">os.name</font></td><td>Operating system name</td></tr><tr><td><font size="+0">os.arch</font></td><td>Operating system architecture</td></tr><tr><td><font size="+0">os.version</font></td><td>Operating system version</td></tr><tr><td><font size="+0">file.separator</font></td><td>File separator ("/" on UNIX)</td></tr><tr><td><font size="+0">path.separator</font></td><td>Path separator (":" on UNIX)</td></tr><tr><td><font size="+0">line.separator</font></td><td>Line separator ("\n" on UNIX)</td></tr><tr><td><font size="+0">user.name</font></td><td>User's account name</td></tr><tr><td><font size="+0">user.home</font></td><td>User's home directory</td></tr><tr><td><font size="+0">user.dir</font></td><td>User's current working directory</td></tr></tbody></table><img src ="http://www.blogjava.net/hkbmwcn/aggbug/107058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2007-03-28 20:12 <a href="http://www.blogjava.net/hkbmwcn/archive/2007/03/28/107058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个时代的结束!</title><link>http://www.blogjava.net/hkbmwcn/archive/2006/09/10/68855.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Sun, 10 Sep 2006 15:27:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2006/09/10/68855.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/68855.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2006/09/10/68855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/68855.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/68855.html</trackback:ping><description><![CDATA[说实话,一直不想在这里写一些不是关于技术方面的东西.但是今天,我实在想写一点什么:今天舒马赫宣布退役了!<br />令我自己也想不通,为什么是今天.而不是米卡.哈基宁退出F1的那一天,也不是Montoya退出的那一天.因为我一直是他们两个的车迷!自98年开始看F1以来,一直是一个不向着舒马赫的车迷(倒和维纶纽夫差不多,不过我可没那本事和舒米对着干!呵呵).<br />刚开始,一直喜欢哈基宁,因为只有他才能从舒马赫手中夺取年度冠军,而且不止一次!但是随着Ferrari的强盛一时,麦克拉伦没落了,我心中的英雄也暗然退去.然后,激情四射的哥伦比亚人Montoya来了,他也一度给舒米制造了不少麻烦,而且看他开车我也会充满激情.而且最喜欢他跑今天的蒙扎赛道.在Williams时就在蒙扎取的过冠军,去年也是,可是今年呢?昔日的蒙扎英雄何在?<br />哈基宁的退出令人伤心,长期的压抑作为他的车迷也可以感受到他的心情.Montoya的退出实在是太突然了,突然的我都不会说话了.<br />今天舒米也退了,作为车迷还是很伤心,毕竟我的偶像们都曾是他的手下败将!他的技术却实高人一等,虽然不少时候他也做法卑鄙,毕竟是人嘛!也可以理解.<br />所以今天写点胡话,纪念一下舒米,同时也为追忆(当然不恰当的说法拉)一下我的两位偶像!<br /><img src ="http://www.blogjava.net/hkbmwcn/aggbug/68855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2006-09-10 23:27 <a href="http://www.blogjava.net/hkbmwcn/archive/2006/09/10/68855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>debian etch中设置postgresql 8.1</title><link>http://www.blogjava.net/hkbmwcn/archive/2006/09/06/68059.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Wed, 06 Sep 2006 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2006/09/06/68059.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/68059.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2006/09/06/68059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/68059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/68059.html</trackback:ping><description><![CDATA[数据库方面一直喜欢用postgresql,最近重装了debian.安装的时候发现可以用apt-get
方法安装postgresql了,就安装了一个.结果装完发现居然没有启动,仔细一看初始化也没做,debian这一点做的有点不应该阿!!于是自己重新
做了一下.现在记下来,不要下次忘了.HOHO!记性不好.<br />
用postgres登录,切换到目录/usr/lib/postgresql/8.1/bin(是系统安装的目录,居然没有设置成Path汗).运行./<span class="pg" id="xydwtext">initdb -D /usr/local/pgsql/data(当然,后面的目录也没有,自己建先),成功运行以后就可以启动了. ./postmaster -D /usr/local/pgsql/data<br />
不知道debian安装默认允许非本机用户登录伐,我先看看...<br /></span><img src ="http://www.blogjava.net/hkbmwcn/aggbug/68059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2006-09-06 16:44 <a href="http://www.blogjava.net/hkbmwcn/archive/2006/09/06/68059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用regular expressoions判断url合法性</title><link>http://www.blogjava.net/hkbmwcn/archive/2006/04/20/42106.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Thu, 20 Apr 2006 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2006/04/20/42106.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/42106.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2006/04/20/42106.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/42106.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/42106.html</trackback:ping><description><![CDATA[
		<p>在网上可以看到很多判断判断url是否合法的regular expressions.但是经常是要么缺少protocol,要么缺少port的判断，这里自己写一个：<br /> public static boolean isValidURL(String value) {<br />  Pattern pattern = Pattern.compile("(.*://)?([\\w-]+\\.)+[\\w-]+(:\\d+)?(/[^/.]*)*(/[^/]+\\.[^/\\?]+)(\\?&amp;*([^&amp;=]+=[^&amp;=]*)&amp;*(&amp;[^&amp;=]+=[^&amp;=]*)*&amp;*)");<br />  Matcher m = pattern.matcher(value);<br />  if (m.matches())<br />   return true;<br />  <br />  return false;<br /> }<br /><br />判断url中data是否符合规则：<br />&amp;*([^&amp;=]+=[^&amp;=]*)&amp;*(&amp;[^&amp;=]+=[^&amp;=]*)*&amp;*</p>
<img src ="http://www.blogjava.net/hkbmwcn/aggbug/42106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2006-04-20 10:42 <a href="http://www.blogjava.net/hkbmwcn/archive/2006/04/20/42106.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rcp 程序最小化窗口到系统托盘</title><link>http://www.blogjava.net/hkbmwcn/archive/2006/01/13/27937.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Fri, 13 Jan 2006 07:31:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2006/01/13/27937.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/27937.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2006/01/13/27937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/27937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/27937.html</trackback:ping><description><![CDATA[<P>在RCP程序中最小化窗口到系统托盘并不像SWT程序那样直接。在网上找了一段代码，自己试验通过了，现在贴出来大家分享。<BR>在RCP中继承WorkbenchAdvisor的子类中添加下面代码就可以了。<BR><BR>&nbsp;public void postStartup() {<BR>&nbsp;&nbsp;super.postStartup();<BR>&nbsp;&nbsp;final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();<BR>&nbsp;&nbsp;shell.addShellListener(new ShellAdapter() {<BR>&nbsp;&nbsp;&nbsp;public void shellIconified(ShellEvent e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;shell.setVisible(false);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;});<BR>&nbsp;&nbsp;createSystemTray();</P>
<P>&nbsp;}<BR><BR>&nbsp;private void createSystemTray() {<BR>&nbsp;&nbsp;Tray tray = Display.getDefault().getSystemTray();<BR>&nbsp;&nbsp;TrayItem item = new TrayItem(tray, SWT.NONE);<BR>&nbsp;&nbsp;item.setText("JDishNetwork");<BR>&nbsp;&nbsp;item.setToolTipText("JDishNetwork");<BR>&nbsp;&nbsp;Image image = new Image(Display.getDefault(), 16, 16);<BR>&nbsp;&nbsp;item.setImage(image);<BR>&nbsp;&nbsp;this.trayManager = new TrayItemManager();<BR>&nbsp;&nbsp;item.addSelectionListener(this.trayManager);<BR>&nbsp;&nbsp;item.addListener(SWT.MenuDetect, this.trayManager);<BR>&nbsp;}</P>
<P>&nbsp;private class TrayItemManager implements SelectionListener, Listener {<BR>&nbsp;&nbsp;// TODO: Convert to one class<BR>&nbsp;&nbsp;private final class WindowStateListener extends SelectionAdapter {<BR>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;minimizeWindow();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;private final class RestoreWindowListener extends SelectionAdapter {<BR>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;restoreWindow();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;private boolean minimized = false;<BR>&nbsp;&nbsp;private Menu menu;<BR>&nbsp;&nbsp;private MenuItem[] menuItems = new MenuItem[0];<BR>&nbsp;&nbsp;private RestoreWindowListener restoreWindowListener;<BR>&nbsp;&nbsp;private WindowStateListener minimizeWindowListener;</P>
<P>&nbsp;&nbsp;public TrayItemManager() {<BR>&nbsp;&nbsp;&nbsp;this.menu = new Menu(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.POP_UP);<BR>&nbsp;&nbsp;&nbsp;this.restoreWindowListener = new RestoreWindowListener();<BR>&nbsp;&nbsp;&nbsp;this.minimizeWindowListener = new WindowStateListener();</P>
<P>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;protected void closeApplication() {<BR>&nbsp;&nbsp;&nbsp;PlatformUI.getWorkbench().close();<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<BR>&nbsp;&nbsp;&nbsp;//<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;public void widgetDefaultSelected(SelectionEvent e) {<BR>&nbsp;&nbsp;&nbsp;if (this.minimized) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;restoreWindow();<BR>&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;minimizeWindow();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;protected void minimizeWindow() {<BR>&nbsp;&nbsp;&nbsp;PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setMinimized(true);<BR>&nbsp;&nbsp;&nbsp;this.minimized = true;<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;protected void restoreWindow() {<BR>&nbsp;&nbsp;&nbsp;Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();<BR>&nbsp;&nbsp;&nbsp;shell.open();<BR>&nbsp;&nbsp;&nbsp;shell.setMinimized(false);<BR>&nbsp;&nbsp;&nbsp;shell.forceActive();<BR>&nbsp;&nbsp;&nbsp;shell.forceFocus();<BR>&nbsp;&nbsp;&nbsp;this.minimized = false;<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;public void showMenu() {<BR>&nbsp;&nbsp;&nbsp;clearItems();<BR>&nbsp;&nbsp;&nbsp;MenuItem mi;<BR>&nbsp;&nbsp;&nbsp;MenuItem closeItem;<BR>&nbsp;&nbsp;&nbsp;mi = new MenuItem(this.menu, SWT.PUSH);<BR>&nbsp;&nbsp;&nbsp;closeItem = new MenuItem(this.menu, SWT.NONE);<BR>&nbsp;&nbsp;&nbsp;closeItem.setText("Close");<BR>&nbsp;&nbsp;&nbsp;closeItem.addSelectionListener(new SelectionAdapter() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;closeApplication();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;});<BR>&nbsp;&nbsp;&nbsp;this.menuItems = new MenuItem[] { mi, closeItem };</P>
<P>&nbsp;&nbsp;&nbsp;if (this.minimized) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;mi.setText("Maximize");<BR>&nbsp;&nbsp;&nbsp;&nbsp;mi.addSelectionListener(this.restoreWindowListener);<BR>&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;mi.setText("Minimize");<BR>&nbsp;&nbsp;&nbsp;&nbsp;mi.addSelectionListener(this.minimizeWindowListener);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;this.menu.setVisible(true);<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;private void clearItems() {<BR>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; this.menuItems.length; i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;MenuItem item = this.menuItems[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;item.removeSelectionListener(this.minimizeWindowListener);<BR>&nbsp;&nbsp;&nbsp;&nbsp;item.removeSelectionListener(this.restoreWindowListener);<BR>&nbsp;&nbsp;&nbsp;&nbsp;this.menuItems[i].dispose();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;public void handleEvent(Event event) {<BR>&nbsp;&nbsp;&nbsp;showMenu();<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;}<BR></P><img src ="http://www.blogjava.net/hkbmwcn/aggbug/27937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2006-01-13 15:31 <a href="http://www.blogjava.net/hkbmwcn/archive/2006/01/13/27937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的source.list</title><link>http://www.blogjava.net/hkbmwcn/archive/2005/12/06/22701.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Tue, 06 Dec 2005 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2005/12/06/22701.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/22701.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2005/12/06/22701.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/22701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/22701.html</trackback:ping><description><![CDATA[deb http://ftp.hk.debian.org/debian/ sid main<BR>deb http://ftp.hk.debian.org/debian/ experimental main<BR>#deb http://pkg-gnome.alioth.debian.org/debian/ experimental main<BR>deb http://security.debian.org/ testing/updates main<BR>#deb http://ftp.debian.org/debian/ testing main<img src ="http://www.blogjava.net/hkbmwcn/aggbug/22701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2005-12-06 13:07 <a href="http://www.blogjava.net/hkbmwcn/archive/2005/12/06/22701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWT browser类修改</title><link>http://www.blogjava.net/hkbmwcn/archive/2005/11/30/21915.html</link><dc:creator>亘古顽石</dc:creator><author>亘古顽石</author><pubDate>Wed, 30 Nov 2005 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/hkbmwcn/archive/2005/11/30/21915.html</guid><wfw:comment>http://www.blogjava.net/hkbmwcn/comments/21915.html</wfw:comment><comments>http://www.blogjava.net/hkbmwcn/archive/2005/11/30/21915.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hkbmwcn/comments/commentRss/21915.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hkbmwcn/services/trackbacks/21915.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在swt提供的browser 类中间，缺少不少有用的方法。我在使用时用到两个，getText()和setUrl(String url, String post_data),分别取得当前打开页面的原代码和采用post方式打开页面。现在修改Browser类如下：/**********************************************************************...&nbsp;&nbsp;<a href='http://www.blogjava.net/hkbmwcn/archive/2005/11/30/21915.html'>阅读全文</a><img src ="http://www.blogjava.net/hkbmwcn/aggbug/21915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hkbmwcn/" target="_blank">亘古顽石</a> 2005-11-30 10:25 <a href="http://www.blogjava.net/hkbmwcn/archive/2005/11/30/21915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>