java中的repaint怎麼用

是什麼樣的代碼當中 的repaint

~~~~~~~
~
~
~~~~~~~~~~~~~

㈡ java中的repaint方法

我的理解如下,老師講的有欠缺,沒有講清楚這個方法的使用范圍
java里repaint()是重繪component的方法;
component中己有的圖形發生變化後不會立刻顯示,須使用repaint方法。

㈢ java里repaint();是干什麼用的

java里repaint()是重繪component的方法;
component中己有的圖形發生變化後不會立刻專顯示,須使用repaint方法。
component簡而言之,屬組件就是對象。C++ Builder中叫組件,Delphi中叫部件,而在Visual BASIC中叫控制項。
組件是對數據和方法的簡單封裝。C++ Builder中,一個組件就是一個從TComponent派生出來的特定對象。組件可以有自己的屬性和方法。

㈣ Java中的repaint和paint

有兩點不同:1、repaint有選擇的調用update或者paintrepaint() = update或者paint,對於輕量級組件,repaint會調用paint;而對於重量級組件,會調用update。update一般的工作是清屏然後paint。至於為什麼repaint度輕量級和重量級的處理有所不同,如果你一定希望知道再追問我。你也可以自己重寫update完成自己定製的工作。2、響應方式不一樣paint立即響應,而repaint則是發出重繪請求,等待awt線程選擇合適的時間進行重繪。這就像,你是一個畫家,而你還雇了另外一個畫家——awt。有兩個方法,完成繪圖,第一交給awt線程,但是他什麼時候完成繪畫完全取決於awt的心情;第二你自己來畫,這樣更確定,但是你不得不管理許多細節。在非paint方法中,顯示的調用任何paint方法,就相當於你自己來畫;而repaint就是發出請求交給awt來畫。顯然我們應該確定究竟誰來畫,因為兩者交織的畫可能帶來沖突。比如awt正在繪制的過程中,你的程序亂入,在他繪制一半的圖片上塗塗抹抹……。當然java的設計者希望我們把繪制全權交給awt線程來畫,而不是自己來畫!因為這樣最安全和省事。但是我仍然認為在Java游戲編程中還是自己來管理繪制更加靈活。

㈤ JAVA中repaint()方法的調用問題。

不知道樓主的代碼是什麼
但是你可以把你的業務邏輯代碼寫到run方法版中!
即寫一權個類實現Runable介面
在run方法中將你的業務邏輯放入,然後在sleep,再執行試試看。
對於swing,最好的就是保證圖形和數據實現非同步的模式。
至於樓主產生的效果的問題所在應該不是那樣,其實底層確實是先執行代碼1了,但是第一個repaint方法可能沒起作用!

㈥ java 關於repaint

一般來說,
paint是系統回調函數,用戶不能主動調用,需要進行重繪時,要使用repaint方法,當用回戶調用答repaint方法後,實際上,系統後台調用了paint方法,所以,你的問題,要畫一條直線,或者清除一條直線,那麼你的繪制代碼或清除代碼要寫到paint方法中,然後需要繪制或清除的時候,調用repaint方法,就可以了

㈦ java中repaint()方法到底應該怎麼用

java里repaint()是重繪component的方法;

repaint()方法用於重繪組件,該方法有下面四種形式:
1。 void repaint()
2。public void repaint(long tm)
//指定調用update方法之前等待的最大毫秒數tm
3。public void repaint(int x,int y,int width,int height)
//重繪組件的指定矩形區域
4。public void repaint(ling tm,int x,int y,int width,int height)
repaint方法不總是馬上執行,Java雖然會盡可能快的執行repaint,當Applet運行在較慢的平台上或計算機較忙時,應該考慮使用第2或4種repaint方法,指定在多長時間內必須執行repaint,否則就放棄。

repaint()這個方法是一個具有刷新頁面效果的方法,如果你要頁面進行重畫就可以調用.一般都是在AWT的圖形繪制當中調用的到.那麼該方法具體的工作原來是怎麼樣的呢?看下面的結構流程圖你就可以大概的了解了:
repaint()方法
|
|
V
AWT線程--->paint()方法-->圖形繪制
|
|
V
update()方法--->paint()方法--圖形繪制
從上面的流程圖可以看出,在繪制動畫圖形時候如果沒有調用repaint()方法的時候直接就是由線程調用paint()方法進行繪制,用repaint()進行刷新顯示.但是這樣的動畫會有個缺點(這樣的效果繪制出來會有閃爍).想想做出來的動畫總是隔一段時間就閃爍,有人會看嗎?那麼應該怎麼去除閃爍呢?我再下面的文章中會講到.這里主要的是說明repaint()這個方法.
在調用了repaint()的時候我門可以看出,它並不是直接就去繪制動畫(調用paint()),而是通過調用AWT線程在由線程去調用另一個方法update()再由update()調用畫筆paint()方法進行繪制.那麼這里為什麼要多做一步呢?這樣是不是為我門多增加代碼的書寫量呢?回答是當然不會,如果你不調用repaint()那麼就不能實現每一次的刷新顯示,就只會繪制重疊的圖形,不能一張一張的繪制出來.那麼其中調用的update()到底是起到什麼樣的作用呢?
update():清除當前顯示並調用paint()方法.當然這個update()方法是可以被修改的,我門在另一篇文章關於"雙緩沖技術"中會給大家講到這點.
綜合上面的介紹可以總結出repaint()的工作原理:repaint()通過調用線程再由線程去調用update()方法清除當前顯示並再調用paint()方法進行繪制下一個需要顯示的內容.這樣就起到了一種圖片的交替顯示從而在視角上形成了動畫.

㈧ Java裡面Frame的repaint()!!!

我在我的機器里試驗了一下,效果是一個正方形慢慢移動,樓主看一下,基本沒有改什麼,樓主最好把配置說一下,我的是JDK1.5

import java.awt.Frame;
import java.awt.Frame;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Timer;

public class LLDraw extends Frame {

public int xpos;

public LLDraw() {
this.setTitle("ll");
this.setSize(400, 500);
this.setBackground(Color.pink);
this.setVisible(true);

}

public static void main(String[] args) {
new LLDraw().draw();
}

public void paint(Graphics g) {
System.out.println(this.xpos);
g.drawRect(this.xpos, 30+this.xpos, 50, 50);
System.out.println("draw");
}

public void draw() {
System.out.println("Yeah!");
while (true) {
try {
Thread.sleep(1000);
System.out.println("sleep");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("repaint");
this.xpos += 1;
super.repaint();
}
}

}

㈨ java 的 repaint() 問題

最好能把代碼發出來看一看
我剛才測試了:不是paint() 函數非得和調用它的 repaint() 寫在一個類裡面

㈩ 關於java,paint(); repaint();

一般來說,
paint是系統回調函數,用戶不能主動調用,需要進行重繪時,要使用repaint方法,當用戶調用repaint方法後,實際上,系統後台調用了paint方法,所以,你的問題,要畫一條直線,或者清除一條直線,那麼你的繪制代碼或清除代碼要寫到paint方法中,然後需要繪制或清除的時候,調用repaint方法,就可以了