[問題] 繪圖的兩個問題

看板java作者 (severus)時間12年前 (2012/06/20 00:48), 編輯推噓1(107)
留言8則, 5人參與, 最新討論串1/4 (看更多)
有兩個和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

06/20 01:14, , 1F
1. Paint事件發生時再畫一次。
06/20 01:14, 1F

06/20 01:16, , 2F
糟糕.. 這裡是Java板..... 請無視我的話吧
06/20 01:16, 2F

06/20 01:20, , 3F
不好意思我不太懂你的意思。我目前做法是override update()
06/20 01:20, 3F

06/20 01:21, , 4F
嗯@@
06/20 01:21, 4F

06/20 01:25, , 5F
抱歉~ 我以為這是在其他語言版問題.. 所以我真的不清楚~
06/20 01:25, 5F

06/20 06:34, , 6F
1 repaint() 2 用直線連起來
06/20 06:34, 6F
我發現視窗最小化再還原後,程式會自動call paint()一次 所以有沒有repaint()其實沒有影響 我的"畫筆"功能是直接抓取滑鼠位置然後用fillOval畫出,沒有用物件的型式將 "畫"給存起來,所以程式自動call paint()時就無法畫出原圖了 另外就是我希望能調整畫筆的粗細,所以用drawLine無法調整粗細,還是您指的 「用直線連起來」是指另一種方法? 謝謝 ※ 編輯: fenir 來自: 220.134.48.111 (06/20 11:33)

06/20 11:43, , 7F
程式架構要修正,所有狀態應該要能在paint繪出
06/20 11:43, 7F

06/20 12:02, , 8F
可以透過調整 Graphics2D 的 stroke 屬性來調整粗細
06/20 12:02, 8F
文章代碼(AID): #1FuAr88u (java)
文章代碼(AID): #1FuAr88u (java)