看板 java 關於我們 聯絡資訊
有兩個和paint()有關的小問題 1 沒有用物件存畫面上的圖形的話,要如何從最小化視窗還原後還留有之前的畫面? 每一次paint()能保留之前畫的東西,但是縮小再還原後整個畫面會清空 我是用override update()的方式讓每次畫畫時都不會清空畫布,只有加新的圖畫 public void update(Graphics g) { paint(g); } 執行順序是repaint() > update() > paint() > 畫出東西 目前問題是還原視窗後,程式會自動call paint()而不是update() ,所以畫布被清空 2. http://imgur.com/Jsjkx 我是用fillOval當作畫筆的功能,抓取滑鼠的位置 問題是只要畫太快就會有間隙,請問有什麼辦法可以解決? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.48.111
s3748679:1. Paint事件發生時再畫一次。 06/20 01:14
s3748679:糟糕.. 這裡是Java板..... 請無視我的話吧 06/20 01:16
fenir:不好意思我不太懂你的意思。我目前做法是override update() 06/20 01:20
fenir:嗯@@ 06/20 01:21
s3748679:抱歉~ 我以為這是在其他語言版問題.. 所以我真的不清楚~ 06/20 01:25
lvlightvivi:1 repaint() 2 用直線連起來 06/20 06:34
我發現視窗最小化再還原後,程式會自動call paint()一次 所以有沒有repaint()其實沒有影響 我的"畫筆"功能是直接抓取滑鼠位置然後用fillOval畫出,沒有用物件的型式將 "畫"給存起來,所以程式自動call paint()時就無法畫出原圖了 另外就是我希望能調整畫筆的粗細,所以用drawLine無法調整粗細,還是您指的 「用直線連起來」是指另一種方法? 謝謝 ※ 編輯: fenir 來自: 220.134.48.111 (06/20 11:33)
bitlife:程式架構要修正,所有狀態應該要能在paint繪出 06/20 11:43
sbrhsieh:可以透過調整 Graphics2D 的 stroke 屬性來調整粗細 06/20 12:02