1。public void repaint()2。public void repaint(long tm)//指定調(diào)用update方法之前等待的最大毫秒數(shù)tm 3。public void repaint(int x,int y,int width,int height)//重繪組件的指定矩形區(qū)域 4。
創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元洪湖做網(wǎng)站,已為上家服務(wù),為洪湖各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
返回此 JFrame 的字符串表示形式。 protected void processWindowEvent(WindowEvent e) 處理此組件上發(fā)生的窗口事件。 void remove(Component comp) 從該容器中移除指定組件。
比如awt正在繪制的過程中,你的程序亂入,在他繪制一半的圖片上涂涂抹抹……。當(dāng)然java的設(shè)計者希望我們把繪制全權(quán)交給awt線程來畫,而不是自己來畫!因為這樣最安全和省事。
根據(jù)JAVA的API文檔說,PAINT是CONTAINER提供的方法,只要容器需要重畫的時候就會調(diào)用,而paintComponent則是JComponent所提供的方法,它是paint委托的一種重畫組件的方法。
每鼠標(biāo)點擊一次,就往drawings里面添加一個Paintable對象。而在主類JPanel的paint中循環(huán)依次對drawings中的所有對象進行一次性繪制。和背景一起繪制也就不多占資源。
repaint方法調(diào)用時會向你的程序發(fā)送一個消息,要求重繪你的程序的窗口的無效區(qū)域。但這個消息會首先保存到應(yīng)用程序的消息隊列,并不會馬上得到處理。
在paintComponent()里面先調(diào)用super.paintComponent(g);再跟你的代碼。
如果不在paint里面畫圖,那么當(dāng)panel界面更新時,它是不會再畫出來。相當(dāng)一次性畫完就沒了。
你是想干什么 設(shè)置背景圖片?如果只是要設(shè)置背景圖片可以先放在Jpanel里 然后再加到 Jframe 里。
可以通過監(jiān)聽事件來達到效果。1,首先先新建個監(jiān)聽事件,監(jiān)聽某個控件,比如按鈕,監(jiān)聽按鈕,當(dāng)點擊按鈕時執(zhí)行一系列操作。
將圖片資源文件加載放在構(gòu)造函數(shù)里,只加載一次即可,避免重復(fù)加載。不要放在paintComponent函數(shù)里,因為每次窗口改動都會調(diào)用此函數(shù),會造成資源重復(fù)加載問題。
當(dāng)然,直接重繪或全部重繪是很虧的,一個是用雙緩存技術(shù),另一個是只對桌面上顯示的部分重繪。雙緩存是指在緩存內(nèi)先模擬重繪過程,只把最后成形的結(jié)果傳給顯示器顯示。paint表示實參個數(shù)可變。
拖動事件需要記錄當(dāng)前矩形的位置,兩個坐標(biāo)值相減,得到矩形的高度和寬度即可最終確定一個矩形,畫出來。問題就來了,那就是有兩個矩形了,這時在鼠標(biāo)抬起的事件中刪除一個拖動痕跡的矩形。
我的理解如下,老師講的有欠缺,沒有講清楚這個方法的使用范圍 java里repaint()是重繪component的方法;component中己有的圖形發(fā)生變化后不會立刻顯示,須使用repaint方法。