2011-01-16 33 views
1

如果你想用Java編寫一個程序,使用一個JFrame使用ASCII字符串中的字符來模擬矩陣電影下落綠色代碼,以便它看起來就像這個PHP例子的java下降矩陣碼(如電影)

http://mgccl.com/2007/03/30/simple-version-matrix-like-animated-dropping-character-effect-in-php

這樣做的最好方法是什麼?標籤,drawString?等...

我知道,在一個for-loop例如你可以使用整數值我減少y軸值,使顏色setColor(新顏色(255,255 - (i * 5) ,255));

但我不知道如何將「印記」留下。

感謝

+0

+1爲Imagination.Keep它兄弟。 – Wazzzy

回答

0

一旦你爲我達到0,你剛開始在做同樣爲另外兩個通道,因此會逐漸變黑或消失。

setColor(new Color(255 - (i * 5), 0, 255 - (i * 5))); 

長度取決於步長(這是5你的情況,因此印記的長度是51)。所以,如果你想短期印記,你必須做的印記numSteps = 255/length(四捨五入問題不應該被忽略):

i = numSteps..0 
setColor(new Color(255 - (i * step), 0, 255 - (i * step))); 
+0

但什麼是最好的GUI佈局使用? –

+0

不是這方面的專家。 JTextArea具有setSelectionStart,setSelectionEnd和setSelectionColor。所以如果你模仿相同的方法(二維字符數組),你可能會達到完全相同的效果。但這些方法有多快,我不知道。 – Schultz9999

+0

另外,如果JAreaText需要服務器 - 客戶端通信,那麼這種方法根本不起作用。在服務器端生成某些內容時,我看不到任何方法。 – Schultz9999

2

example展示瞭如何使用Alpha透明度褪色的文字,而這example說明如何淡出文本通過改變顏色飽和度。

附錄:

什麼是最好的GUI佈局使用?

我解決在一個單一的,柱狀JPanel即一樣寬所選Font和任意高的問題。使用javax.swing.Timer來控制動畫。然後使用new GridLaylout(1, 0)將任意數量的這樣的列包含爲單個行。

+0

所以jtextarea或paint(圖形g)更適合整體使用? –

+0

我會覆蓋'JPanel'的'paintComponent()'方法。 – trashgod