[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

[C#]簡單的GUI Form時鐘程式

這是一個Thread的簡單應用,利用一個Thread在背景執行,每一秒設定Form上的元件來顯示時分秒,因為Form上的元件不能在其它不是Form本身Thread的執行緒上執行,所以要利用Form的invoke來呼叫Delegate Function設定元件值。

Label1是時、Label2是分、Label3秒,然後run這個function每一秒會去加秒數,當為六十秒時自動幫分加一,而秒數變零,當分為六十分時,自動幫時加一,而分變零,當時為二十四時,時變零。

Form的設定如下:

C#時鐘form

以下是執行畫面:

C#時鐘執行中

Read More

[C#]演算法-氣泡排序法(Bubble Sort)

這個排序演算法主要是利用二個迴圈,一個是要執行的回合數,另一個是真正比對數列資料,一次比較相臨的二個數,大的放右側,小的放左側,則可得最後一個數為最大數,則此數不再比較,以此類推,可以排出一個左小右大的數列。

演算過程的畫面如下程式畫面:

要排列的數列串是2,3,8,1,5,9,10,12,14

氣泡排序1.png

這是執行的過程及結果,一共執行了八回合

其中紅色字為需要交換字、藍色是正在比較的二個數、綠色是已排好的數,不會再進行比較

氣泡排序2.png

Read More

[C#]演算法-二元搜尋法(Binary Search)

二元搜尋法需要先把要搜尋的數列先排序,由小到大,規則是先取前後二索引數,相加除二,也就是取中間數當索引值,然後跟要搜尋的數字做比較,如果一樣就是找到了,如果中間的數比要搜尋的數大,代表要搜尋的數在左邊數列,右邊數列則放棄,相反之,如果中間數比要搜尋的數小,代表要搜尋的數在右邊數列,左邊數列則放棄。

演算過程的畫面如下程式畫面:

數列串是1,2,3,4,5,6,7,8,9,10,11,12,然後要查詢4這個數字

BinarySearch1.png

BinarySearch2.png

Read More

[C#]演算法-循序搜尋法(Linear/Sequential Search)

演算法有很多種,包含搜尋、排序等等,很多人都接觸過,在比較龐大的數學運算上真的是十分重要,可以節省很多時間及資源,像是Google、Yahoo 搜尋,都有自行的算法來應付大量的搜尋及資料。

底下先介紹一個常見的搜尋演算法循序搜尋法(Linear/Sequential Search),觀念十分簡單,也常用到,就是直接用迴圈一個個去比對,找到時就跳出(回傳)。

演算過程的畫面如下程式畫面:

數列串是1,2,3,4,5,6,7,然後要查詢5這個數字

搜尋1.png

搜尋2.png

Read More