2011-05-04 129 views
1

在組件中,我必須顯示幾行彩色像素。該線的每個像素都被賦予一種顏色。什麼樣的組件適合構建線條或哪種組件適合用於存儲像素?彩色像素行

回答

0

對我來說,最好的(但也許不是最簡單的)方法是實現一個自定義的Paint類,它允許設置顏色區域 - 有點像GradientPaint類,但更靈活。

然後,在畫線之前,您可以撥打Graphics2D.setPaint(myPaint)

Paint實施可以提供一個方法setColorForRegion(double start, double end, Color color)startend服用0.0和1.0之間的值來標記就行的區域。

實現Paint類可能有點複雜,但好處是,您可以調整線的大小並在保留顏色模式的同時在任何方向繪製它們。

+0

這有點像我嘗試的第一個解決方案。我正在使用LinearGradientPaint繪製多邊形。我擔心性能,因爲我每秒鐘都會創建一個新的LinearGradientPaint以每秒填充一個多邊形。 – wotan2009 2011-05-04 12:57:03

+0

使用JLabel似乎不是一個可行的解決方案,因爲行中的每個像素都應該放置在其座標中的組件中,並且a具有定義其顏色的值。所以我有一個對象用座標和顏色值表示像素。現在我必須找到一種方法來構建將每個像素對象以正確的顏色放置在正確位置的線。 – wotan2009 2011-05-04 13:32:59

+0

@ wotan2009如果您衡量(並且只有這樣!)性能問題,您可以緩存漸變,並且只有在影響其外觀的任何內容發生變化時才重建 – kleopatra 2011-05-04 14:06:51

3

只需延伸JComponent並繪製paintComponent()方法中的線條/像素。

+0

...這只是將*彩色線條繪製問題*移動到另一個容器中。看起來wotan已經有一個組件。 – 2011-05-04 11:04:30

+0

和稍微不同的是繪製nonResiziable和Resiziable Component,看起來像Andreas_D的關於GradientPaint(在JLabel中)的消解應該是最簡單和最安全的方式 – mKorbel 2011-05-04 11:26:49