顯示具有 Java 標籤的文章。 顯示所有文章
顯示具有 Java 標籤的文章。 顯示所有文章

2008/9/24

3

Java Tech Days 2008

發表評論
誠摯地邀請您參與SUN TECH DAYS 的全球技術盛會!匯聚全球精英與您分享在Java EE、Java SE、JavaFX、JavaScript、NetBeans、OpenSolaris、MySQL、GlassFish、Open Source、Web 2.0、Tools等相關技術的寶貴專業知識與開發技巧!這場難得的盛會將讓您提昇技能,藉此機會學習到新的開放性免費技術,發展更好的應用及基礎架構來達成重要目標,並對開發者技術社群的發展進行創新,學習更多!Empower You!

SUN TECH DAYS 為Sun的年度盛會,也是Java最重要的全球巡迴活動,Sun規劃各項精彩的演講及展覽,遍及全球13個城市,目的在培訓本地的開發人員掌握各種最新技術,包括Java EE、Java SE、JavaFX、JavaScript 、NetBeans、OpenSolaris、MySQL、GlassFish、Open Source、Web 2.0、Tools等開發技術。這是一場全球開發人員的盛會,將提升您的開發技能、學習新技巧、拓寬職業發展、分享最新知識。最重要的是,您將與全球技術精英一同在Sun世界巡迴專業技術大會中建立互動網絡。

活動網址是:http://www.jrpr.com.tw/java2008/

10/20以前報名費只要$500,在今年的活動中算是相當便宜的一場。

這個活動公告有段時間了,不過我到最近才下定決心跑一趟台北來去參加。今年因為學校諸多事情,錯過許多看似不錯的技術盛會,在接近年底歲末尾聲,總要留下一點回憶,所以不管那天有什麼事,都要在台北度過才行。

下午的講座分成A、B兩組,A是今年很夯的Enterprise/Web 2.0 Track,而B組Desktop Track則包含前瞻的JavaFX(RIA)及Java SE 7、OpenSolaris New Features,雖然對A組的議題興趣較多,不過OpenSolaris也想瞭解,所以在這個單點的部份還在猶豫。

剛退伍不久的阿輝也有興趣,目前還在招募人員中…

2008/9/12

0

QuantumDB: Eclipse資料庫應用程式開發好幫手

發表評論
使用Eclipse的開發者,經常也會有使用資料庫的需求,然而Eclipse並無內建資料庫的管理工具,許多開發者必須開啟其他軟體才能進行資料庫的維護及測試,但Eclipse豐富的Plugin很容易找到好的工具來滿足我們的需求。想要將資料庫管理也變成Eclipse整合開發環境一項功能,QuantumDB是個不錯的選擇,它支持多種業界常用的資料庫,能夠透過SQL查詢或選單功能方便地維護Schema及Data,QuantumDB的發展已經有段時間,目前的新版本使用上相當穩定,功能也足以滿足多數資料庫應用程式的需求。

安裝好QuantumDB之後,Eclipse就會多出一個Quantum DB perspective供選擇,切換至這個資料庫管理專用的perspective之後,我們就能將常用的資料庫連結(Connection URL/username/password)設定成Bookmarks,日後只要直接開啟就能快速連上資料庫,Queries View可以直接下SQL查詢並在Table View看見回傳的結果。

Quantum DB提供的一些特點包含:
  • 使用標準JDBC資料庫連線
  • 可以檢視schema、table、view、sequence
  • 自動找尋欄位、索引、外來鍵資訊
  • 可以管理、修改及執行*.SQL指令檔
  • 使用簡易的精靈介面方便修改、刪除或新增資料

Quantum DB的安裝非常容易,官方已經提供Update Site,因此只要以下網址加入「Help / Software Updates」,選擇com.quantum.feature就能完成安裝。
Update Site: http://quantum.sourceforge.net/update-site

QuantumDB works with any JDBC-complaint database, including:

  • Adabas
  • DB2
  • DB2 on AS400
  • HSQLDB
  • Informix
  • MySQL
  • Oracle
  • Pointbase
  • PostgreSQL
  • Sybase

Screenshots:

2008/9/1

0

JAVA_OPT: file.encoding 解決中文亂碼問題

發表評論
Java預設會以OS的設定當作處理文字檔的編碼,例如中文Windows通常是MS950,而Linux則可能是UTF-8。

有些情況下我們會統一採用UTF-8開發專案,但有些library讀取時就會出現亂碼的問題,這個時候必須在環境變數增加 JAVA_OPTS。
windows
JAVA_OPTS=-Dfile.encoding=UTF8 %JAVA_OPTS%
unix bash
export JAVA_OPTS=-Dfile.encoding=UTF8 $JAVA_OPTS

file.encoding是Java VM的參數,作為讀取檔案時預設的編碼設定。

例如在 Windows + Tomcat + Groovy 1.5.6 的環境下開發Groovlets,若沒有使用file.encoding指定編碼,則即使程式碼用了正確的UTF-8編碼存檔,裡面的中文仍會變成亂碼,問題就出在GroovyServlet會用系統預設的編碼設定讀取Groovlets程式碼。

2008/8/19

0

拋棄式Groovy - CSV資料轉PHP陣列

發表評論
Groovy很適合用來寫拋棄式程式,也就是用過即丟的小程式,例如在一些情況我們可能需要處裡Excel或CSV資料檔,產生成部分的程式碼,如果資料量小、不到十筆的那種,花點時間修改動手做並不太費事,但若資料再多一些,有30筆、50筆、100筆,這時候就陷入兩難了,若為了這樣的小需求去寫一個程式似乎不合成本,而且也不會變成未來正式發展的程式功能。

用Groovy很簡單就可以克服這個問題,因為它寫一個小程式來應付這樣的需求,可以說是不痛不癢,簡單開個記事本之類的文字編輯器,寫個像以下範例的簡短程式碼,點兩下執行就將任務自動化完成。這麼做可以解決的其實不止眼前的任務,因為當來源資料有所異動時,很可能需要再重複進行一次,若沒有這個小程式,當初所做的苦工可就還要再累一次、時間再浪費一次,而這種小程式好寫好改,下次遇到其他類似狀況,可能稍微改個兩三行就能解決新問題。

這個小程式可處裡的資料檔(filename.csv)內容像是:
key1,value1
key2,value2

即逗號隔開的CSV檔,而產生的PHP代碼區塊會是:
array("key1"=>"value1","key2"=>"value2");
text = new File('PATH','filename.csv').text

list = []
text.split('\n').each {
item = it.split(',')
list << "\"${item[0]}.${item[1]}\"=>\"${item[2].trim()}\""
}

new File('PATH','filename.txt').write("array("+list.join(',\r\n')+");")

2008/8/18

0

soapUI; the Web Services Testing tool

發表評論
無論開發或是使用Web Services,過程中都需要進行一些測試,觀察服務是否能夠如預期地運作,傳入的參數是否能夠得到正確的結果,Eclipse內建的Web Services Explorer雖然提供了些基本功能,但難免有功能的限制,畢竟只是一個附加的小工具。如果需要比較專業的Web Services測試工具,就可以考慮用soapUI,它跨平台(用Java開發)、也有免費版本可下載。

soapUI is the leading tool for Web Service Testing. With more than 300 000 downloads, it's the most used tool for SOA testing in the world.

soapUI is Free and Open Source and is used for Inspecting Web Services, Invoking Web Services, Developing Web Services, Web Service Simulation and Web Service Mocking and Functional Testing of Web Services Load Testing of Web Services over HTTP.

soapUI Pro is an extended version of soapUI with professional support and extended functionality.

soapUI is a free and open source desktop application for

It is mainly aimed at developers and testers providing or consuming Web Services (Java, .net, etc). Functional and Load Testing can be done both interactively in soapUI or within an automated build or integration process using the soapUI command line tools.

Mock Web Services can easily be created for any WSDL and hosted from within soapUI or using the command-line MockService runner. IDE-plugins are available for

soapUI requires Java 1.5 and is licensed under the LGPL license.

2008/8/5

0

Groovy入門123 - 檔案列表篇

發表評論
利用Groovy超級方便的File及RegularExpression,輕鬆就能做到目錄下的檔案列表。

ex01, 列出目錄下的XML檔
basedir = new File('path_to_your_dir')
files = basedir.listFiles().grep(~/.*xml$/)

ex02, 列出目錄下的EXCEL檔
new File('./path').eachFileMatch(~/[A-Za-z0-9]+\.xls[x]?/) {
   file -<
   //do something
}
0

J2EE RIA i18n&l10n solutions

發表評論
i18n(internationalization)是開發的專案需要行銷到其他國家必須面對的挑戰,對於已經以UTF-8編碼為基礎的專案來說,支援多國文字就比較沒有太多問題。在大量加入Ajax元素的Web Application專案,面臨的新問題是原本可以集中在Server端處理的程式碼,有很多部分將變為JavaScript撰寫,所以處理i18n的文字顯示時,面臨client和server端各有其不同作法與程式碼的寫法,增加了許多設計與維護的困難。

最近參與一項專案的i18n工作時,試圖將過去在LAMP平台上實作過的多國語言介面機制在J2EE平台上實現,試圖在維護便利性、高執行效能、低頻寬及處理時間耗用的前提考量下,建立一個新的i18n架構,部分的概念已做成個案簡報。

簡報已經上傳至 Scribd
http://www.scribd.com/doc/4505818/J2EE-i18nl10n

2008/8/4

0

Tricks of Groovy - Copy File

發表評論
With Groovy you can do file copying in few lines scripts list below.
  1. //importjava.net commons
    FileTools.copyFile("foo.txt", "bar.txt");
  2. //antbuilder (no import needed!)
    ( new AntBuilder ( ) ).copy ( file : 'blah' , tofile : 'fobar' )
  3. //apache commons io
    org.apache.commons.io.FileUtils.copyFile(srcfile, targetFile)
  4. //simply copy text file with write/text methods
    new File('SRC_FILE').write(new File('TO_FILE').text)
  5. static void copyFile(File source, File destination) {
    def reader = source.newReader()
    destination.withWriter { writer ->
    writer << reader
    }
    reader.close()
    }
  6. //with shell under unix
    'cp SRC TARGET'.execute()
  7. //with shell under window
    'copy SRC TARGET'.execute()
0

Extjs的簡體中文電子書

發表評論
Extjs是改良自YUI,其前身就是YUI-EXT,雖然Yahoo將自家開發RIA網頁的library - YUI開放源碼,但從Yahoo開發自己的新版Web Mail介面效果來看,完全以YUI打造的Web使用者介面,將可能面臨資源吃重、速度緩慢的問題。Ext提供更好的效能、結構設計、不斷進步的跨瀏覽器相容能力。

Ext JS 2.0

Ext JS is a cross-browser JavaScript library for building rich internet applications.

  • High performance, customizable UI widgets
  • Well designed, documented and extensible Component model
  • Commercial and Open Source licenses available

介紹了一下Ext,回到重點就是下面的連結,今天逛網站的時候偶然看見,在目前Ext資料還很缺乏的階段,能有中文(雖然是簡體版)真是令人感動,Ext至目前為止還沒有專書,只有一些JavaScript的書或許有提到部份,但大部份的時候還是只能從官方的API docs & samples,以及Google找來的片段程式碼推敲程式怎麼寫,很多時候還是會踏進陷阱,畢竟JavaScript要做到cross-browser本來就有難度,Ext雖然幫我們完成了基礎架構,但也不能保證一定不會出錯,在開發okbon服務時,就中槍不少次。Ext是個很實用的js lib,可以實際派上用場的那種,有興趣的人歡迎一起研究、交流學習資源和經驗啦。

2008/8/1

0

Groovy對程式設計學習的幫助

發表評論
對Java程式設計老手來說,利用Groovy的簡潔特性,可以很快速撰寫一些拋棄式小程式,不管是解決一些操作電腦需要的功能(例如批次檔案處理),或是幫助程式開發的除錯測試任務,都能夠直接獲得一些好處。

在教學者或程式設計初學者的角度來看Groovy,它也是相當好用的教學工具,現在的大學、專科課程很常教Java,但是教學的方式卻很詭異,讓初學者在
根本不知道什麼是物件觀念的時候,就開始要寫一個只有main()
method的Class,然後在main()裏面把所有事情做完,進階一點的就是宣告Class的其他static
method當作function來用,學習者的觀念在這時候很容易就混淆,甚至到業界工作都還以為程式就是要這樣寫才對,加上Java很多語法限制及特
性,都是為了解決實務上的問題,對學習來說都是無意義的包袱,這種情況下學生很難學好程式設計。在過去教學以BASIC為主的年代,學生不用管什麼路徑、
怎麼編譯,只要打好程式,按下執行鍵就能看到結果,畢竟學習程式設計的重點在於邏輯觀念,過程要愈簡潔愈好、學習階段寫的程式碼也要愈簡潔愈好。

Java讓很多IT學生程式設計老是學不好(Joel很早就這麼說過),甚至就連教學的人自己也有著不清不楚的觀念,但偏偏很多時候我們還是必須用Java寫程式、甚至是為了考試。而不管Groovy對於實務的軟體開發能有多少幫助,但它提供的簡潔特性,對程式設計的學習有不少幫助,大幅降低了學習的門檻,值得學習者與教學者認真考慮。
0

Groovy入門123 - 安裝篇

發表評論
安裝Groovy真的很簡單,不過就是下一步、下一步、...下一步。
對Ubuntu的使用者來說,安裝Groovy只要簡單下個apt-get install groovy就可以自動下載&安裝完成。

PS. 但中文環境Ubuntu使用者比較不幸的是...安裝好不能啟動groovyConsole,別緊張,在終端機先執行 export LANG=en_US.UTF-8 ,再輸入 groovyConsole 啟動就可以了。

安裝好之後,啟動 groovyConsole(Windows使用者可以由開始選單找到) 就能開始初體驗,在這個簡易的程式編輯&執行程式,只要打好code按下ctrl+r就能看到執行結果。



2008/7/30

0

Canoo WebTest

發表評論
Canoo WebTest is a free Open Source tool for automated testing of web applications in a very effective way.

http://webtest.canoo.com/webtest/manual/WebTestHome.html

Canoo可以用XML或Groovy撰寫Test Case,結果也可以用Web方式呈現,在Test-driven的Agile開發環境似乎是個不錯的選擇。
0

Groovy初體驗之XML篇

發表評論
一行!一行!只要一行!

用Groovy存取XML能有多輕鬆呢?有碼有真相,請繼續往下看:

假設XML長這個樣子...
<config>
<title>我是抬頭</title>
</config>

要讀取title的文字內容,只要這樣子...
def root = new XmlParser().parse(new File("PATH_OF_XML_FILE"))
print root ['title'][0].value()[0]

還記得幫JSP/Servlet刻Java code時,光是XML Parser的設定就要幾(十)行了嗎?現在應該覺得相見恨晚了吧!
0

Groovy初體驗之Database篇

發表評論
用Groovy存取資料庫能有多輕鬆呢? 有碼有真相,請繼續往下看:

def sql = new Sql(new javax.naming.InitialContext().lookup("java:comp/env/jdbc/ConnName").getConnection())

對於已經設定好Container的JDBC DataSource,用上述的一行指令就能夠建立連線!

如果是要即時建立新的連線呢?

def sql = Sql.newInstance("jdbc:URI_HERE", "username", "password", "DRIVER_CLASS")

既然建立連線都這麼簡單了,那下SQL查詢呢?

sql.eachRow("select id, name from people") {
println "$it.id, $it.name"
}

如果還記得在JSP要怎麼寫,現在應該覺得相見恨晚了吧!

2008/7/29

0

用Groovy開發Java Web Applications

發表評論
Groovy把Java變成較容易寫的Scripting language(就類似Perl/PHP/Python/Ruby),於是可以不用再去care那些繁文褥節。Java最可愛的一面就是它很為初學者著想,做了一堆保護措施防止初學者犯了笨蛋的錯誤(*但初學者仍會犯了笨蛋也不會犯的錯);對於已經有經年累月程式設計功力,又善於用Dynamic Programming Language快速打造應用程式的資深老手,一定覺得Java寫起來就像拖著牛車去跑馬拉松,即使有再多精力、創意,也只能...等明天能寫得完再說吧!

最近接手一個用Java打造的project開發案,整個都用純JSP製造而成,看得我實在一個頭三個大,於是興起嘗試Quercus的念頭,曾經用過Quercus覺得它仍有許多待發展之處,這次嘗試的結果仍是多次碰壁,好不容易設定好JDBC連線,可以通過new PDO("jdbc/ConnName");的方式簡單存取資料庫了,但中文編碼問題仍是無解,官方提供的設定說明,在百般嘗試後仍得不到預期的效果,最後只好放棄。

仍舊要使用Java的折衷方案,只好再去瞧一下傳說中發展得不錯的Groovy,嗯,一試就上癮,這東西的資源似乎開始變多了,需要什麼solution只要上Google就能在第一頁找到。於是參考了 http://groovy.codehaus.org/Groovlets 這篇官方的教學,開始玩玩Groovy打造Web Application。步驟很簡單,就是設定groovy servlet、複製需要的*.jar檔案、開始寫*.groovy script程式檔。

*原本想要將今天的Groovy玩樂心得簡單寫成教學,無奈Blogger+ScribeFire還是貼程式碼、設定檔還是很麻煩,只有等Scrapbook開發好再來寫囉。

2008/7/19

0

JSP遇見失效的EL

發表評論
最近在JBoss 4.0.5.GA開發Web AP時,一直碰到一個囧問題,就是發佈出去的WAR包,JSP中含有EL的部份,完全起不了作用,也就是畫面中需要代入變數的部份,都變成直接顯示出EL表示式(${example_val})。

這問題真是囧到不行,重新deploy幾次仍失敗後,發現要把deploy/work資料夾給砍了,重新啟動JBoss Server,問題自己自動消失了。

但或許這是一個僥倖,今天在改寫舊的AP時,原本都沒什麼狀況,但就在一次重新deploy後,JSP又開始跟EL裝不熟,砍work的大絕也回天乏術,而莫名其妙的是另外一個結構相同的Web AP,不管怎麼deploy/undeploy都不會有問題。

在絕望之際,很想從10樓往外跳的時候,Google大神伸出援助的雙手,發現了原來還有比大絕還厲害的一段語法,給JSP服用後果然一次見效,此後就JSP乖乖聽話,把EL當家人看待:
<%@page isELIgnored="false" %>

但這真是莫名其妙看到鬼,另一個好端端的Web AP不加這語法也沒問題,而且在JSP 2.0 spec中,明明EL就應該預設開啟支援的。

也難怪教人如何避免跳入Java陷阱的主題,就能寫成一系列套書。

屢次在寫J2EE時冒出想輕生的念頭,就像寫HTML時被IE整到快咳血一樣,看來為了寶貴的生命,還是趕快把SCWCD拿一拿就跟Java說掰掰吧!

2008/7/17

0

Open source XML diff written in Java

發表評論
It's a collection from http://www.manageability.org/blog/stuff/open-source-xml-diff-in-java
  1. VMTools
    - The toolkit contains tools for automatically generating differences
    between two XML documents. The difference document generated is
    optimized for minimal size. Supports mark-up style documents in
    addition to data documents.
  2. 3DM
    - The 3DM tool is a tool for performing 3-way merging and differencing
    of XML files. Unlike line-based tools, such as diff and diff3, 3DM is
    aware of the structure of the processed XML documents. 3DM is not
    limited to update/insert/delete operations, it also handles moves and
    copies of entire subtrees. 3DM is not reliant on edit histories; the
    only input needed are the XML files.
  3. diffxml
    - Standard UNIX tools exist for comparing (diff) and patching (patch)
    files, which operate on a line by line basis using well-studied methods
    for computing the longest common subsequence (LCS). This project
    contains XML diff and patch utilities. Also contains an implementation
    of a Delta Update Language or DUL.
  4. diffmk
    - Converts the documents into two lists of nodes (text and/or element
    nodes) and attempts to find the longest common subsequence of nodes.
    Phrased another way, it finds the smallest number of additions and
    deletions to each list that are required to make the two lists the same.
  5. XMLUnit
    - XMLUnit for Java provides two JUnit extension classes, XMLAssert and
    XMLTestCase, and a set of supporting classes (e.g. Diff, DetailedDiff )
    that allow assertions to be made about the differences between two
    pieces of XML. XMLUnit for Java can also treat HTML content (even
    badly-formed HTML) as valid XML to allow these assertions to be made
    about the content of web pages too.
  6. OpenSHORE XML Merger
    - ool to insert XML tags from differnt sources into one or more text
    files. The Java program reads a very simple file format (*.xmlm files)
    with one XML command per line. XMLM sorts these commands, removes
    duplicates, ensures correct tag structure and generate XML files from
    listed files.
  7. XOperator
    - XOperator is a scriptable command-line tool and library to compare,
    merge and synchronize XML documents, a framework to formulate and
    evaluate algebraic expressions on XML trees and a framework to express
    object-oriented inheritance (and more) in pure XML.
  8. JXyDiff - JXyDiff is a based on XyDiff.
    It was originally developed at INRIA. It employs a novel Change Model
    tailored to XML data. It is a tree oriented algorithm that is fast and
    can detect if a node has been moved or updated.
  9. DiffX
    - DiffX is an open source Java API for comparing XML documents by
    analyzing the sequence of XML events. When processing XML data for
    comparison it more interesting to know that a word in the text of
    chapter X, paragraph Y has been changed rather than knowing that line Z
    is different. DiffX can ignorethe order of the attributes and white
    space for indentation or namespace prefixes.
  10. XMLPatch
    - XMLPatch, developed at Nokia, is a framework utilizing XML Path
    language (XPath) selectors for the use in applying a set of patches to
    a document. The framework includes a simple xml-diff utility.
  11. XMerge
    - The XMerge SDK provides a framework for converting documents between
    different formats using conversion plugins to read and write each
    format. In addition to format conversion, the XMerge SDK provides a
    framework for merging changes in one document format into an original
    document. XMerge provides plugins that are designed to support the
    OpenOffice.org XML file format. The framework is able to support
    "chaining" of conversions, also known as an "Any-to-Any" conversion,
    eg. convert from a Palm document to a PocketPC document through the
    intermediate OpenOffice.org XML file format.
  12. A7Soft JExamXML

2008/6/29

0

Eclipse Ganymede 正式發表

發表評論
跨平台的自由整合開發環境Eclipse發佈了最新的3.4版,代號Ganymede。Eclipse Ganymede是23個不同的Eclipse專案小組的一次協同發佈,其代碼數超過了1800萬行。Ganymede的改進和關鍵特性包括,新的p2供應平台,使Eclipse用户更容易安裝和更新Eclipse;Equinox增加了兩個安全功能;RAP 1.1框架更容易建立漂亮、可擴充、模組化的web應用程式;Eclipse Communication Framework增加了即時通訊和協作特性,建模框架增加了新的圖形環境Ecore,開發者工具也有很多大大小小的改進等等,更多可見發佈公告,部分特性的中文簡介也可見infoq。現在就可到下載頁試用。

from [Solidot]

2008/4/3

0

JBoss bind address configuration

發表評論
測試使用JBoss 4.0.5GA

搭配Web Services時,WSDL定義中的soap address location預設是localhost,即使用非localhost的url連結,location設定仍顯示localhost,使用以下address指定可解決。

//使用any address
run -c default -Djboss.bind.address=0.0.0.0

//查看說明
run -h

2008/2/28

0

新書快訊, JFC Swing教學手冊第二版-GUI建構指引

發表評論
JFC Swing教學手冊第二版--GUI建構指引
The JFC Swing Tutorial Second Edition: A Guide to Constructing GUIs

JFC Swing Tutorial回來了! 這次經過全面改版,內容含括了最新版的JFC Swing API與Java2 平台.
在本書中,Kathy Walrath, Mary Campione, Alison Huml, Sharon Zakhour這群Java專家與Sun Microsystems的Swing團隊密切合作,詳盡闡述如何用Swing元件打造GUI.
本教學手冊以特定作業與範例為導向,可教您建構跨平台的使用者介面,其效能可媲美甚至勝過該平台的原生程式.借助最新Java2平台的強大威力,作者們在第二版中加入了全新內容,將GUI的建構心法鮮活展現! 包括易於使用的頁籤式參考章節, 新增的簡介章節, 以及各種新功能的介紹,如JSpinner, JFormattedTextField, JProgressBar, 滑鼠滾輪支援,全新的焦點系統, 與拖放功能的改進.
本書內容:
  1. 針對Swing初學者的簡介,包括文字欄位,標籤,按鈕等基本元件,以及影像的使用.
  2. 來自Swing團隊的執行緒開發建議
  3. Swing進階內容, 包括更改鍵盤繫結, 焦點操作, 資料模型的使用, 以及利用Java2D API進行繪圖
  4. 討論各個元件與容器的使用方式, 包括表格, 樹, 與文字編輯器等進階元件
  5. 超過150個完整,可運作的範例
---
翻譯的水準是可以接受,想入門Swing的朋友可以考慮。如果不想花錢買書,那就參考一下線上原文的Tutorial