深入理解display類的使用
email:[email protected]
熟悉了midlet類的使用以後,下面來熟悉一下display類的使用,這個類也是進行j2me程式設計中經常要使用到的類之一。
display類有兩個最主要的作用: 1、
獲得螢幕的屬性。例如螢幕是否是彩色的,以及支援的顏色數量等資訊。 2、
控制螢幕的顯示。例如使螢幕顯示某個指定介面或者獲得當前的顯示介面等。
其中,特別是第二個作用使用的更加頻繁。
另外乙個需要注意的地方是,每個midlet只有乙個display型別的物件,該物件控制該midlet程式中所有的顯示控制。所以在建立display物件時,必須指定該display物件和哪個midlet物件對應。
在使用display提供的功能以前,必須建立乙個display型別的物件,建立該物件的時候只能使用display類中的靜態方法getdisplay方法來進行建立,該方法的完整宣告如下:
public static display getdisplay(midlet m)
使用該方法可以建立乙個代表midlet型別物件m的display物件,一般我們可以在midlet類的構造方法中建立。例如建立乙個mymidlet類的該物件,則可以使用如下的**:
private display display;
public mymidlet()
因為以上**書寫在mymidlet類內部,則this關鍵字就**mymidlet型別的物件。這樣就建立了乙個代表mymidlet的display物件。
物件建立完畢了以後,就可以使用display物件提供的功能了。
在midp1.0中,display類提供的功能主要分為兩個部分: 1、
獲得螢幕的屬性 l
iscolor——判斷螢幕是否是彩色的 l
numcolors——如果是彩色手機,則獲得支援的顏色數量,如果是黑白手機,則獲得支援的灰度等級。 2、
控制螢幕的顯示
在手機螢幕上可以直接顯示的介面,全部都必須是displayable的子類。控制顯示主要分為兩類方法: l
setcurrent——設定當前顯示的介面物件 l
getcurrent——獲得當前顯示的介面物件
除了以上方法以外,還有乙個方法是: l
callserially
該方法的作用是使指定的執行緒物件首先暫停,讓系統首先完成螢幕的顯示,等螢幕顯示完畢以後再使執行緒繼續執行。
在midp2.0中,對於display類進行了很多的增強,主要在兩個方面進行了增強: 1、
螢幕的屬性 l
numalphalevels——獲得裝置對於透明度的支援
可以通過該類獲得在list、choicegroup和alert中能夠顯示的最大(最佳)尺寸,有助於在高階使用者介面程式設計中使用恰當的。 l
getbestimageheight——獲得裝置支援的最佳高度 l
getbestimagewidth——獲得裝置支援的最佳寬度 l
getborderstyle——獲得控制項的邊界格式 l
getcolor——獲得高階使用者介面中的預設顏色
可以獲得如下型別的預設顏色 n
color_background——背景 n
color_foreground——前景 n
color_highlighted_background——高亮時的背景 n
color_highlighted_foreground——高亮時的前景 n
color_border——邊界 n
color_highlighted_border——高亮時的邊界
例如獲得預設的背景顏色,可以使用如下**實現:
int bgcolor = display.getcolor(display. color_background); 2、
控制裝置 l
flashbacklight——控制手機背景燈的閃爍 l
vibrate——控制手機震動
其他的還有乙個很實用的方法,在form介面中,可以使某個控制項獲得焦點,可以使用如下方法: l
setcurrentitem——設定某個控制項獲得焦點,可以接受輸入。
以上詳細介紹了display類提供的各個功能,但是在實際使用過程中,還需要有些別的要求。
例如在實際的手機介面程式設計中,為了增強**的可讀性,經常需要將不同的介面封裝成不同的類,然後在介面之間按照程式邏輯的要求進行變換,這樣就需要使用到display物件的setcurrent方法進行切換。而建立display物件時,必須傳遞乙個midlet型別的物件,這樣大大限制了建立display物件。
一般在介面類中,因為介面類不是midlet的子類,所以需要獲得display物件有兩個方法: 1、
傳遞midlet型別的物件 2、
傳遞display型別的物件
下面就以傳遞display物件為例來實現在介面類中進行切換。下面的程式為了簡單起見,以兩個canvas介面為例來演示實際的傳遞,高階介面和這個使用完全一樣。
midlet中的**實現:
display display;
public mymidlet()
第乙個介面類的**實現:
public class firstcanvas extends canvas
/**繪製方法*/
public void paint(graphics g)
/**事件處理*/
public void keypressed(int keycode)}
display display;
public secondcanvas(display display)
這裡就不再累述了。
上面的**演示了如何使用傳遞display物件的形式,在介面類中實現切換介面。當然除了該方式以外,需要實現該功能的方式還有很多種,這裡只介紹這一種容易理解的實現方式。
以上內容詳細介紹了j2me程式設計過程中display類的實際使用,希望能幫助大家快速熟悉該類的實際使用。因為作者水平有限,不足之處難免,希望大家能積極指正!
深入理解和應用display屬性(二)
此類元素是inline block的合體 1 margin和padding都有效 width和height都有效 inline div class inline a inline01 a div div class inline a inline02 a div div class inline a...
深入理解和應用display屬性(二)
此類元素是inline block的合體 1 margin和padding都有效 width和height都有效 inline div class inline a inline01 a div div class inline a inline02 a div div class inline a...
深入理解MIDlet類
深入理解 midlet 類出自 在j2me 程式設計過程中,midlet 是最核心的類之一,熟悉該類的使用是 j2me 學習過程中必須首先掌握的類,下面就結合實際介紹一下該類的實際使用。眾所周知,j2me 程式都是從 midlet 類開始執行,系統規定了 midlet 的生命週期。規定 midlet...