[問題] 如何使用drawLine(用迴圈)

看板java作者 (阿哲)時間13年前 (2013/01/19 14:19), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串1/1
小弟我遇到了一個小問題,我想要畫一個座標(表示刻度) 因為每個刻度的間隔都會一樣,一個一個寫沒問題(不過很累) 所以我打算使用迴圈寫 但是我用迴圈寫遇到了一個問題 就是當我的x>10時,那個刻度就自己消失了, 請問我有甚麼辦法能改善?! (目的是希望把紅色那一大串變成綠色那樣) private x=0; public void paint(Graphics g) { Insets ins = getInsets(); // 取得邊線尺寸 g.setColor(Color.white); // 填入背景色彩 g.fillRect(ins.left, ins.top, getWidth()-(ins.left+ins.right), getHeight()-(ins.top+ins.bottom)); g.setColor(Color.BLACK); g.drawLine(30,50,1030,50); while( x<=10){ g.drawLine(a,50,a,55); a=a+100; x++; } g.drawLine(30,50,30,55); g.drawLine(130,50,130,55); g.drawLine(230,50,230,55); g.drawLine(330,50,330,55); g.drawLine(430,50,430,55); g.drawLine(530,50,530,55); g.drawLine(630,50,630,55); g.drawLine(730,50,730,55); g.drawLine(830,50,830,55); g.drawLine(930,50,930,55); g.drawLine(1030,50,1030,55); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.91.231

01/19 16:01, , 1F
感覺 x 有點多餘 直接用 a 當作條件判斷就好了啊
01/19 16:01, 1F

01/19 17:05, , 2F
在開始畫之前要先把x歸零??
01/19 17:05, 2F
因為我還有再寫一個 repaint ,不過刻度當迴圈結束就會消失了~! 我要想請問如何讓刻度不要消失 還是說我該把完整的程式貼上來?!

01/19 22:22, , 3F
repaint 機制問題,要貼 code 之前請先確認你懂你的 code
01/19 22:22, 3F
版主大~! 這其實是我們考試的一個題目~! (不過已經考完了) 我只是再想辦法把成次簡化一點 http://i.minus.com/irUWfe72iVEsv.png
就是使用一個timer讓那個藍色的每秒跳一次 不過現在我的問題是當我把刻度那個改迴圈,跑一下就會消失了 我的問題是如何讓那個刻度不消失 ※ 編輯: TWTRubiks 來自: 118.171.71.248 (01/19 23:33)

01/25 15:17, , 4F
x如果只是單純在repaint中使用,宣告為類別成員是無意義的
01/25 15:17, 4F

01/25 15:20, , 5F
把x宣告在repaint中,並初始為0看看
01/25 15:20, 5F
文章代碼(AID): #1G-Zi42f (java)