[Java]JButton按鈕透明背景

要做swing套件的JButton透明背景有幾種方式,像是利用html-tag的background背景來設定、或是使用JLabel來e承載Image然後add至JButton裡等,不過使用JLabel的方式需要做些技巧才會有透明背景的效果出來。

使用html-tag的方式需要實際存在硬碟裡的圖檔,所以需要在使用前先Resize一份存到硬碟裡,而JLabel的方式則可直接Resize存在記憶體使用,使用的時機及優缺點都需要考量。

如果只是想單純在JButton裡加入圖片,那直接使用function setIcon會比較方便。

註:以下所有範例圖,均只有一個按鈕,會分成外框及內框,圖片需使用支援透明背景及去好背的圖,如png或gif。

下圖是setText使用html-tag設定body的background,會自動延展背景,所以如果只想出現一張背景圖時,圖的長寛與按鈕就需要控制好。能控制的範圍為內框裡,外框部份就不會延展背景圖了。

HtmlButton1.png

Read More

[Java]產生SVG向量圖形檔-xml圖形檔

SVG圖檔是一種利用xml及css來製作而成的一種向量圖形,放大或縮小均不會改變其品質,不過當圖形複雜到一定程式時,其檔案也會跟著變大很多,能夠設計SVG圖形作品的軟體工具包括Adobe Illustrator以及CorelDRAW等,要能查看svg檔案裡的圖形可以利用browser像是firefox、chrome都可以直接知道此向量圖形的內容。

Wiki SVG

在Java要輸出(產生)SVG檔很簡單,在Apache 套件裡有一個batik可以很簡單的就生成所要的SVG圖檔,只需要把原本在建立圖檔時使用的java.awt.Graphics2D變成使用org.apache.batik.svggen.SVGGraphics2D來繪製圖形就可以了。

產生的結果圖:

ToSVG.png

Read More

[Java]如何產生Qrocde二維條碼?

QRCode二維條碼,是Quick Response Code縮寫,來自日本的國際二維條碼標準,是在1994年由日本Denso-Wave公司所發明的,此公司並保有版權但並不行使版權,所以在使用QRCode上並沒有版權上的問題。QRCode的應用像是購物消費、資料查詢、名片交換等等,在日本使用上是十分常見的,而台灣在近幾年也開始流行了起來。

更詳細的QRCode介紹可以參考Wiki QR碼或是 行動條碼 / 二維碼 / Mobile Barcode / QRCode

要利用Java來產生QRCode可以使用swetake所開放出來的原始碼http://www.swetake.com/qr/index-e.html,有php、ruby及Java等版本,下載點qrcode_java0.50beta10.tar.gz ,下載後解壓縮,可以直接把lib目錄下的QRcode.jar直接引用到程式classpath裡就可以了,或著把所有src目錄裡的java檔copy到專案source目錄裡也可。

qrcode壓縮檔

Eclipse的配置如下圖

Eclipse內的配置圖

Read More

[Servlet]利用JMagick即時產生縮圖

剛好有個網友提到如何利用Servlet來產生縮圖,利用Servlet來產生而不存放成檔案,這種及時取得圖像的方法,比較不建議使用在需要大量輸出圖的狀況下,這樣子在記憶體的使用上會很重。

而為什麼使用ImageMagick來做縮圖呢?其實Java本身也可來製做縮圖,可是因為本身浮點運算的問題,效果並沒有很好,雖然麻煩了點,還是外掛dll來使用ImagicMagick會來的好。

JMagick ImageMagick等介紹及下載請參考:

JMagick-Java open source free影像壓縮

範例的結果:

jmagick1.png
Read More