亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問有什么更簡單容易的方法實現 ?即在繪出一個界面3秒之后,繪制出新的界面?

請問有什么更簡單容易的方法實現 ?即在繪出一個界面3秒之后,繪制出新的界面?

慕尼黑5688855 2022-05-25 19:15:35
我是初學java的新手我在重寫的paint方法中加入了一個計時器,想要在繪出文字3秒之后,繪制出新的文字paint部分的代碼如下:@Overridepublic void paint(Graphics g) {// TODO Auto-generated method stubsuper.paint(g);//設置背景顏色為灰色this.setBackground(Color.gray);//屬性設置g.setColor(Color.white);Font fLevel = new Font("黑體", 0, 100);g.setFont(fLevel);//輸出字g.drawString("測試", 280, 300);//暫停三秒鐘Timer t = new Timer(true);t.schedule(new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stub//用新的矩形覆蓋原來的界面g.setColor(Color.gray);g.fillRect(0, 0, 800, 600);//輸出延遲3秒后的字g.drawString("測試", 20, 20);}}, 3000);然而這樣并沒有什么反應,依舊是原來的文字。我試著將run方法中的代碼改為system.out.println("測試");卻成功地在3秒后輸出了。請問這是什么原因?
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

Graphics在paint過后會被dispose()。所以在異步的線程中你的Graphics已經不能再使用了。要做到3秒后更新可以在類的里面定義一些作圖的屬性,包括顏色、位置等,然后在timer里面修改屬性的值然后調用repaint方法

查看完整回答
反對 回復 2022-05-30
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號