關於Java中的paint,repaint,update三個方法的關係
下列就是本人今天做了歡迎介面時遇到的種種困難和錯誤,希望放在這裡能讓大家引以為鑑,不要再犯這樣的錯誤!
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;
相關推薦
關於Java中的paint,repaint,update三個方法的關係
當在程式中需要重繪操作時,我們一般會用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畫圖總結之三(常用方法paint,repaint,update)
三,常用方法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中反射的三個方法hasattr,getattr,setattr
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的記憶體分為堆記憶體和棧記憶體 棧記憶體是指程式進入一個方法時,會為這個方法單獨分配一塊私屬儲存空間,用於儲存這個方法內部的區域性變數,當這個方法結束時,分配給這個方法的棧會釋
java中package命名規則,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