2011-11-08 62 views
0

我試圖建立一個工具,將定位一個組件在Swing應用程序(例如按鈕或文本字段)和'突出顯示它'。我正在考慮使用heat maps的想法來突出顯示。如何爲擺動應用程序創建熱圖?

有沒有人曾經使用過這樣的東西,也許可以指出如何爲這個想法生成它們,因爲我沒有找到很多與此相關的相關信息。

感謝您的幫助:)

回答

2

好吧,除非我錯過了你的問題,這應該是非常容易的。可以設置幾乎所有Swing組件的背景顏色。例如,javax.swing.JComponent的所有子類都有一個setBackground()方法。

第二步是實際分配一種顏色。爲此,您需要知道最小值,最大值和觀測值。如果我們要做一個簡單的熱圖,例如從白到紅,那麼您只需確定RGB Color規範中的紅色分量的數量即可。這可以用公式來完成:

int red = ((value-min)/(max-min))*255; 
Color color = new Color(red, 255, 255) 

你可以分配color爲背景,爲您的文本字段的按鈕。

+0

這也是一個很好的建議。你可以做到這一點,而不是繪製一個覆蓋(見我的迴應如下) – GETah

+0

非常感謝這個評論...顏色的公式很有幫助...非常感謝 – ict1991

0

我的建議並不依賴Heatmaps,但可能會滿足您的需求。 大多數Swing UI組件從JComponent的繼承其中有: - 一個getLocation方法父框架 上返回的組件的位置 - 一個getSize方法返回組件 的大小可以添加一個方法來你的框架,看起來(一個簡單的碰撞檢測算法將有所幫助)

一旦找到該組件,您可以在該位置繪製任意大小的半透明覆蓋圖(矩形或任何其他形狀)使用2D圖形(請參閱example)。 通過這種方式,您可以在給定其位置的情況下勾勒出主框架上的任何組件。 我希望這可以幫助。

相關問題