1. 程式人生 > >關於Java中的paint,repaint,update三個方法的關係

關於Java中的paint,repaint,update三個方法的關係

當在程式中需要重繪操作時,我們一般會用repaint()而不是直接呼叫update()或者paint(),repaint()將呼叫update().而在各種awt,swing元件需要自動重新繪製時,程式也一般也會自動呼叫repaint()方法.

 下列就是本人今天做了歡迎介面時遇到的種種困難和錯誤,希望放在這裡能讓大家引以為鑑,不要再犯這樣的錯誤!
 1、不理解paint()方法、repaint()方法、update()方法的區別;
 解決思路:paint()方法是由系統自動隨機呼叫,而update()方法是我們自己人為呼叫,paint()方法必須要人為指定是什麼時候讓系統開始呼叫,但是首先在最開始的時候自己呼叫一次,所以不安全,我們一般使用update()方法,此方法必須用repaint()方法呼叫。我們呼叫paint()方法其實也是由repaint()方法呼叫update()方法(注:paint()方法在加圖之前必須判斷記憶體裡面是否有圖片);

 2、程式執行順序問題:this.memoryImage()!=null;
 解決思路:虛擬機器是先載入屬性檔案;
 3、路徑錯誤;
 解決思路:src是原始檔,不要和它混在一起,我們要用到其它如圖片和音樂的檔案要放在一個資料夾下面,且此資料夾是和src同一級別;
 4、找不到圖片;
 解決思路:圖片都必須是在媒體跟蹤器跟蹤完之後才能載入,才能找到其的寬和高,不能在媒體跟蹤器載入完之前呼叫圖片的寬和高;
 5、圖片覆蓋;
 解決思路:圖片在畫進螢幕的時候要有一定的順序問題,背景放在最下面,一層一層往上放,要不然會發生覆蓋問題;
 6、圖片不能顯示;
 解決思路:我們的圖片畫在螢幕上但前題是我們要有一個窗體才能畫,所以在將記憶體的圖畫進螢幕的時候必須將窗體可見性設出:setVisible(true);

 7、未找到圖片的問題判斷:
 解決思路:如果沒有找到圖片,那麼那個圖片點whith及點height打印出來都是-1;

相關推薦

關於Javapaintrepaintupdate方法關係

當在程式中需要重繪操作時,我們一般會用repaint()而不是直接呼叫update()或者paint(),repaint()將呼叫update().而在各種awt,swing元件需要自動重新繪製時,程式也一般也會自動呼叫repaint()方法. 下列就是本人今天做了歡迎介面時遇到的種種困難和錯誤,希望放在這裡

java創建線程的方法以及區別

sta tar ati 定義 callable main ring 我們 () Java使用Thread類代表線程,所有的線程對象都必須是Thread類或其子類的實例。Java可以用三種方式來創建線程,如下所示: 1)繼承Thread類創建線程 2)實現Runnable接口

Android小知識-剖析Retrofit靜態內部類Builder的方法

本平臺的文章更新會有延遲,大家可以關注微信公眾號-顧林海,包括年底前會更新kotlin由淺入深系列教程,目前計劃在微信公眾號進行首發,如果大家想獲取最新教程,請關注微信公眾號,謝謝! 在上章節《Android小知識-剖析Retrofit中的網路請求流程以及相關引數》中介紹了Retrofit的成員變

Java基礎 執行緒的通訊的方法/ 交替數數執行緒 / 生產者&消費者執行緒問題

執行緒通訊筆記: /** 執行緒通訊 三個方法: * wait(): 呼叫該方法 是該呼叫的方法的執行緒釋放共享資源的鎖,進入等待狀態,直至被喚醒 * notify() : 可以喚醒佇列中的第一個等待同一共享資源的執行緒, 並使該執行緒退出等待佇列,進入可執行狀態 *

java畫圖總結之(常用方法paintrepaintupdate

三,常用方法paint,repaint,update 這個問題的由來是因為,我在編寫java小程式,畫圖的時候,發現我重寫了paint(graphics g)方法,而執行的時候呼叫的是repaint()無參方法。老師說,repaint裡面間接呼叫了paint方法。但是是如何間接呼叫的呢?r

java方面引數後面跟點(...)的含義

private void removeTempFiles(String... fileNames) { for (String fileName : fileNames) { try { new File(fileName).delete(); } catch (Excep

java常見的類接口異常

tex 權限 array 變量 都是 run 做的 pointer 數組下標                       java中常見的類,接口,包,異常 類   String  Integer  Long   File   Date  Thread(java.lang.

TODO java 學習:在java啟動其他應用由jenkins想到的

服務 com 其他 定義 第三方應用 order 其他應用 mman key 在jenkins的實踐中遇到了一個問題:   我的項目依賴其他第三方應用的地方比較多,而且會占用多個端口,如何處理端口和啟動/關閉第三方應用成了難題。   初級解決方案:在服務端上面寫一堆bat文

python反射的方法hasattrgetattrsetattr

pythonhasattr(obj,attr) getattr(obj,attr) setattr(obj,attr,val) class People: def eat(self): print(‘eat‘) def drink(self): print(‘

java 使用logback日誌並實現日誌按天分類壓縮儲存。

以maven專案作為構建工具為例,首先引入使用logback需要的3個依賴,需要注意使用logback是需要引入slf4j-api的,因為logback是基於slf4j的 <!--logback--> <dependency> <groupId>ch.qo

Java動態程式碼塊構造程式碼塊靜態程式碼塊之間的執行順序

Java中動態程式碼塊,構造程式碼塊,靜態程式碼塊之間的執行順序 /** * Java中動態程式碼塊,構造程式碼塊,靜態程式碼塊之間的執行順序 * @author Administrator * */ class HelloA { public HelloA() { Sys

Java變數和常量關鍵字和識別符號

Java語言基礎 識別符號的含義: 可以理解為有關名字,用來標識類名、變數名、方法名、陣列名、檔名的有序字元序列。 Java中的識別符號: 由任意的字母、下劃線、美元符號和數字組成,並且第一個字元不能是數字,識別符號不能是Java中的保留關鍵字。 注意:Java中嚴格區分

Java傳入一個時間段取出該時間段內所有日期的集合

package com.yhsb.assisData.controller; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.u

java map常量定義 Java定義Map常量List常量

https://www.cnblogs.com/leonxiaosi/p/6928604.html   Java中定義Map常量,List常量 一般的方式的使用靜態程式碼塊。比如:

Java執行緒池你真的會用嗎

轉載自   Java中執行緒池,你真的會用嗎 在《深入原始碼分析Java執行緒池的實現原理》這篇文章中,我們介紹過了Java中執行緒池的常見用法以及基本原理。 在文中有這樣一段描述: 可以通過Executors靜態工廠構建執行緒池,但一般不建議這樣使用。 關於這個

Java判斷奇數偶數實測

看了一些帖子,發現有些錯誤,於是自己做了些修改,並進行了測試 package insertString; public class insertTest { public static void main(String[] args) { System.out.println

#一分鐘讓你瞭解Java的堆記憶體棧記憶體

java堆疊 java面試過程中經常會被問到關於堆疊的問題,這裡我稍微總結一下,供大家參考一下。 java的記憶體分為堆記憶體和棧記憶體 棧記憶體是指程式進入一個方法時,會為這個方法單獨分配一塊私屬儲存空間,用於儲存這個方法內部的區域性變數,當這個方法結束時,分配給這個方法的棧會釋

javapackage命名規則Java包(package)的命名規範

Java的包名都有小寫單片語成,類名首字母大寫;包的路徑符合所開發的 系統模組的 定義,比如生產對生產,物資對物資,基礎類對基礎類。以便看了包名就明白是哪個模組,從而直接到對應包裡找相應的實現。       由於Java面向物件的特性,每名J

java的Sort函式你值得看

基於C語言中的sort如此這麼方便,自然而然,java中也有類似C的sort函式。 1.普通陣列:Arrays.sort(陣列名,開始位置,結束位置)。 2.類中屬性排序:   模板: class A {   int n; } class cmp implement Comparator<A> {

JAVA建立HTTP通訊從伺服器上獲取HTML程式碼通過HTTP請求來下載圖片或其他二進位制檔案的程式下載結果要按下載到的檔案型別進行存檔

通過HTTP請求來下載圖片或其他二進位制檔案的程式,下載結果要按下載到的檔案型別進行存檔 將程式碼從伺服器的中獲取下來的程式碼,在我之前已經講過了這裡寫連結內容 這裡我們就直接將原始碼稍加改動,加入一個檔案並請將builder 寫入即可。 import