2011-10-02 129 views
2

我想創建一個簡單的Java應用程序來繪製線條。Java簡單線條繪製程序

我的程序就像現在這樣;

用戶可以通過拖動鼠標來繪製所有內容,但當釋放他的手指時,我從屏幕上刪除了所有內容,並繪製了第一個鼠標座標和最後一個鼠標座標的一條線。

但是,因爲每次我清除屏幕,用戶只能畫一條線。 如果我不清潔屏幕,有線條,但也有曲線等,這是用戶拖動鼠標時創建的。

我應該如何找到解決方案?

謝謝。

回答

5

解決您的問題的一種簡單的方法是在程序中保留保留狀態。每當繪製一條線時,將其存儲在一個點對的ArrayList中。當用戶成功繪製一條線時,將該線的起點和終點存儲到ArrayList中。每次用戶繪製另一條線時,將該對點添加到ArrayList。然後,在繪製「所有線條」時,清除屏幕然後使用一個循環,併爲每個存儲的點對繪製一條線。

程序中的某個地方存在一個類,其生命週期「只要繪圖」,或「只要應用程序運行」。這是保持國家的好地方。

1

將行的起點和終點存儲在放入可擴展集合(如ArrayList)中的對象中。在繪製時,繪製列表中的所有行。

2
  1. 在鼠標向下,存儲位置。
  2. 在鼠標上方,用向上和向下的點創建一個新的線對象(定義你自己的類)。
  3. 取出存儲鼠標下來(因爲你不需要它了!)
  4. 新線對象添加到行的列表定義
  5. 當你畫,總是很清楚一切,並吸引你有每一行存儲。
  6. (可選)如果鼠標向下,還在當前存儲的鼠標向下位置和當前鼠標位置之間繪製一條線。
1

Custom Painting Approaches提出了兩種方法。第一個存儲/重繪的行已經在這裏建議。第二種方法是直接繪製到BufferedImage。

+0

+1我忘了'BufferedImage'。 –