深入理解Display類的使用

2021-08-22 02:04:13 字數 2950 閱讀 5770

深入理解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...