java中paint()的具體用法?
1、這個方法需要注意的地方不多,也就是重寫時,先調用(g)方法。paint方法不需要編寫代碼調用,只需要重寫。
2、paint。publicvoidpaint(Graphicsg)繪制容器。該方法將paint轉發給任意一個此容器子組件的輕量級組件。如果重新實現此方法,那么應該調用(g)方法,從而可以正確地呈現輕量級組件。如果通過g中的當前剪切設置完全剪切某個子組件,則不會將paint()轉發給這個子組件。
3、調用paint的一般是repaint()或當顯示器刷新的時候調用的類似repaint()的類。當對于桌面執行了某類操作,改變了桌面上的圖象時,jvm收到界面被調整的信息,此時會調用visible是ture的圖形組件的repaint()方法對界面重繪。
4、當然,直接重繪或全部重繪是很虧的,一個是用雙緩存技術,另一個是只對桌面上顯示的部分重繪。雙緩存是指在緩存內先模擬重繪過程,只把最后成形的結果傳給顯示器顯示。
java中,staticfinal和單獨static有什么區別?
final可以修飾:屬性,方法,類,局部變量(方法中的變量)
final修飾的屬性的初始化可以在編譯期,也可以在運行期,初始化后不能被改變。
final修飾的屬性跟具體對象有關,在運行期初始化的final屬性,不同對象可以有不同的值。
final修飾的屬性表明是一個常數(創建后不能被修改)。
final修飾的方法表示該方法在子類中不能被重寫,final修飾的類表示該類不能被繼承。
對于基本類型數據,final會將值變為一個常數(創建后不能被修改);但是對于對象句柄(亦可稱作引用或者指針),final會將句柄變為一個常數(進行聲明時,必須將句柄初始化到一個具體的對象。而且不能再將句柄指向另一個對象。但是,對象的本身是可以修改的。這一限制也適用于數組,數組也屬于對象,數組本身也是可以修改的。方法參數中的final句柄,意味著在該方法內部,我們不能改變參數句柄指向的實際東西,也就是說在方法內部不能給形參句柄再另外賦值)。
static可以修飾:屬性,方法,代碼段,內部類(靜態內部類或嵌套內部類)
static修飾的屬性的初始化在編譯期(類加載的時候),初始化后能改變。
static修飾的屬性所有對象都只有一個值。
static修飾的屬性強調它們只有一個。
static修飾的屬性、方法、代碼段跟該類的具體對象無關,不創建對象也能調用static修飾的屬性、方法等
static和“this、super”勢不兩立,static跟具體對象無關,而this、super正好跟具體對象有關。
static不可以修飾局部變量。
staticfinal和finalstatic沒什么區別,一般static寫在前面。
static修飾的屬性強調它們只有一個,final修飾的屬性表明是一個常數(創建后不能被修改)。staticfinal修飾的屬性表示一旦給值,就不可修改,并且可以通過類名訪問。
staticfinal也可以修飾方法,表示該方法不能重寫,可以在不new對象的情況下調用。