国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      可分java小程序的制作方法

      文檔序號:6414358閱讀:204來源:國知局
      專利名稱:可分java小程序的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計算機軟件領(lǐng)域,更具體地說,本發(fā)明涉及小程序(applet)以及它們與操作環(huán)境之間的關(guān)系。
      像瀏覽器這樣的應(yīng)用程序的近期版本提供使用與平臺無關(guān)的小程序,它們可以作為預(yù)編譯Java字節(jié)碼(中間級指令)下載。瀏覽器的例子有網(wǎng)景公司的Navigator 3.0TM或Hot JavaTM(SunMicrosystems的一種產(chǎn)品,Sun圖標和Hot Java是SunMicrosystems公司在美國和其它國家的注冊商標)。這些小程序通過一個“虛擬機”執(zhí)行。虛擬機是一種特定平臺環(huán)境,它解釋或編譯小程序代碼,并在其中執(zhí)行高級指令。一種流行的、占統(tǒng)治地位的小程序編程語言是由Sun Microsystems開發(fā)的“JavaTM”(SunMicrosystems的一種產(chǎn)品,Sun圖標和Hot Java是SunMicrosystems公司在美國和其它國家的注冊商標)。用Java或其少數(shù)變種編程的小程序稱為Java小程序。
      Java小程序的關(guān)鍵用處在于,它們是與平臺無關(guān)的,亦即為平臺A編寫的一個Java小程序不需修改而能運行在B平臺上,只要A和B兩個平臺都有能為它們各自的平臺執(zhí)行小程序代碼的虛擬機。雖然Java小程序是與平臺無關(guān)的,但是啟動它們的應(yīng)用程序的特征、變異和限制使這些小程序基本上成為與應(yīng)用程序有關(guān)的,從而削弱了小程序的靈活性。例如,Java小程序在從網(wǎng)景公司的領(lǐng)航員(Navigator)的Sun操作系統(tǒng)版本的HTML(超文本標識語言)代碼中調(diào)用時的一個限制是,當小程序被調(diào)用時,為該調(diào)用的HTML標簽必須包括高度和寬度,由此定義一個該小程序在其內(nèi)運行的窗口尺寸。當在應(yīng)用程序窗口內(nèi)運行時,小程序受所述高度和寬度標簽限制,從而任何為該小程序產(chǎn)生的輸出、輸入、對話框或彈出式窗口必須出現(xiàn)在該限制范圍內(nèi)。
      在這種情況下,當小程序窗口是應(yīng)用程序窗口的一個“子窗口”時,小程序窗口遭受幾種障礙。首先,小程序窗口不能關(guān)閉,除非應(yīng)用程序退出,或者直到應(yīng)用程序轉(zhuǎn)移到從一個新主機接收數(shù)據(jù)(從啟動(生成)所述小程序的同一窗口)。伴隨這一限制,當啟動小程序的應(yīng)用程序轉(zhuǎn)移到一個新的URL(統(tǒng)一資源定位器一由應(yīng)用程序訪問的主機“地址”)時,則小程序窗口關(guān)閉,小程序停止執(zhí)行。用戶不能控制小程序停止執(zhí)行。在一些情況下,即使應(yīng)用程序已經(jīng)轉(zhuǎn)移到不同的URL,仍希望繼續(xù)運行小程序。例如,用戶可能希望一個從URL A啟動的、來自一個外部或者外地源播放內(nèi)容的流式音頻小程序繼續(xù)播放,即使應(yīng)用程序已轉(zhuǎn)移到不具有同一小程序的URL B。在現(xiàn)在的實踐中,必需打開或啟動該應(yīng)用程序的一個新的事件(亦即打開一個新的應(yīng)用程序窗口)從URL B接收內(nèi)容,以便使其它應(yīng)用程序事件繼續(xù)執(zhí)行音頻小程序。但是這一方法有幾個缺點。
      首先,啟動一個新的應(yīng)用程序事件可能增加存儲器和系統(tǒng)資源的使用,它可能降低小程序和新應(yīng)用程序事件的性能。另外,仍然不能從應(yīng)用程序的限制或環(huán)境的外部控制小程序。事實上,隨著第二應(yīng)用程序窗口(事件)的啟動,在小程序可以被控制之前,第一窗口必須成為活動的(在前臺,在光標或鼠標的控制下)。另外,常規(guī)小程序模型不允許小程序窗口在操作環(huán)境中圖標化(窗口最小化)。在現(xiàn)在的實踐中,為使小程序最小和變?yōu)閳D標,應(yīng)用程序窗口自身必須最小化。在這種情況下,小程序不具有自己的圖標,而是繼承瀏覽器的圖標。窗口不能最小化、不能重新定義大小以及不能進行其它GUI的修改,例如改變字型、背景顏色等,將給小程序以嚴重的限制,很難不受應(yīng)用程序的限制而獨立控制。
      消除應(yīng)用程序?qū)蓤?zhí)行代碼模塊依賴的一種解決方法是使用“插入程序”。然而,不像在特定環(huán)境/平臺下運行的“插入程序”(包含數(shù)據(jù)/代碼的文件,用于改變、增強或擴展父應(yīng)用的操作)一樣,Java小程序基本上是與平臺無關(guān)的。插入程序必須下載(或與應(yīng)用程序打包),允許某些也許應(yīng)用程序內(nèi)部不支持的文件類型(例如ShockWaveTM或RealAudioTM)在本地平臺上被解釋和輸出。然而,插入程序不像應(yīng)用駐留的Java虛擬機,它駐留在本地,而且必須存儲在本地磁盤中以備重新使用,這是它的缺點。重要的是,插入程序啟動進程完全獨立于瀏覽器,從而是依賴于平臺的。于是,雖然插入程序可能允許GUI獨立地控制它們的窗口,但是它們不像Java小程序,完全不從瀏覽器繼承(因為它們不需要虛擬機運行)。運行一個插入程序類似于通過操作環(huán)境運行一個單獨的應(yīng)用程序,因此它不像Java小程序,對便于移動的可執(zhí)行性不是一個可行的代用方案。
      用于增強一種諸如瀏覽器的應(yīng)用程序的能力的另一個發(fā)展是使用“幫助者”(“helper”)應(yīng)用程序。幫助者應(yīng)用程序存儲在本地,它不具有Java小程序的便移動性和對平臺的獨立性,亦即在奔騰平臺上的一個幫助者應(yīng)用程序不能用在Sun SparcTM(Sun Microsystems的一種產(chǎn)品,Sun圖標和Sparc是Sun Microsystems公司在美國和其它國家的注冊商標)系統(tǒng)上,反之亦然。幫助者應(yīng)用程序還在操作環(huán)境內(nèi)啟動一個新進程/線程,并命令一個新應(yīng)用程序事件的系統(tǒng)資源,這一點不像Java小程序。幫助者應(yīng)用程序與交付待處理的數(shù)據(jù)的應(yīng)用程序無關(guān),僅通過操作環(huán)境被調(diào)用。幫助者應(yīng)用程序不能插入,即不在應(yīng)用程序的虛擬機內(nèi)執(zhí)行。另外,幫助者應(yīng)用程序不易從主機轉(zhuǎn)移到客戶機,因為幫助者應(yīng)用程序與小程序相比代碼尺寸相當大。
      另外,在諸如網(wǎng)絡(luò)計算機(NCs)的更新的信息設(shè)備中,幫助者應(yīng)用程序和插入程序由于有限的操作環(huán)境特征和缺乏本地存儲器甚至不能工作。NC在概念上說來是基于使用遠端存儲的小程序,例如在網(wǎng)絡(luò)上分布的Java小程序來對NC提供應(yīng)用程序和內(nèi)容。相比起來,NC的當前工業(yè)標準保證NC通過使用虛擬機和瀏覽器/應(yīng)用程序能夠執(zhí)行Java小程序。即使在NC情況下,也希望這些小程序具有它們自己與調(diào)用它們的瀏覽器/應(yīng)用程序分開的嵌入式功能。
      因此,需要有一種方法和裝置把Java小程序從應(yīng)用程序的限制中分開,以便它們可以通過操作環(huán)境直接由GUI控制,以及它們不由啟動它們的應(yīng)用程序的狀態(tài)而限制。
      本發(fā)明公開了一種方法和系統(tǒng),用于把Java小程序從提供執(zhí)行這些小程序的Java虛擬機的應(yīng)用程序的限制中分開。從而分開的小程序可以出現(xiàn)在一個分開的窗口中,更易于由操作環(huán)境桌面控制。Java小程序繼續(xù)在應(yīng)用程序的虛擬機之下運行,但是比所述應(yīng)用程序的圖形接口限制少。另外,如果啟動小程序的應(yīng)用程序轉(zhuǎn)移到一個新的URL主機,Java小程序繼續(xù)運行。此外,小程序一旦分開后,可以重新連接到應(yīng)用程序而出現(xiàn)在該應(yīng)用程序的歷史中。
      圖1是根據(jù)本發(fā)明的一個實施例的流程圖,它變換一個不可分Java小程序使其具有可分功能。
      圖2表示當根據(jù)本發(fā)明的一個實施例從一個應(yīng)用程序中啟動一個小程序時,該小程序行為的流程圖。
      圖3是為Java小程序定義的繼承層次結(jié)構(gòu)例子的圖。
      圖4表示在顯示器屏幕上顯示的分開的小程序。
      圖5表示在連接狀態(tài)的一個小程序“Jukebox(自動電唱機)”。
      圖6表示根據(jù)本發(fā)明的一個實施例分開一個小程序的流程圖。
      圖7表示根據(jù)本發(fā)明的一個實施例連接一個小程序的流程圖。
      定義“操作環(huán)境”一詞指操作系統(tǒng)、內(nèi)核、外殼等低層軟件,它們安排任務(wù)日程、分配存儲器、處理對外設(shè)硬件的接口和在無應(yīng)用程序運行時為用戶提供一個默認接口。操作環(huán)境還通過執(zhí)行應(yīng)用程序可能由其可執(zhí)行代碼要求的存儲器分配、輸入/輸出等來允許該應(yīng)用程序運行。
      “桌面”一詞指其中操作環(huán)境允許用戶與操作環(huán)境對話的虛擬環(huán)境(通常是在顯示器上的輸出)。桌面包括但不限于顯示器和使用作為操作環(huán)境功能的圖標、光標、窗口、對話框、菜單以及其它用戶接口元件。桌面是一個虛擬繪制的屏幕區(qū)域,其中應(yīng)用程序窗口及其相關(guān)的輸入/輸出可以顯示,希望的話也可與用戶對話。
      該詳述中使用的“方法”一詞指得是與一類或者多個類相關(guān)的一種功能調(diào)用、過程或者子例程,類在面向?qū)ο蟮木幊碳夹g(shù)中眾所周知。
      “可分”一詞指得是小程序脫離由啟動它的應(yīng)用程序加在其上的GUI限制的能力?!翱煞中浴币辉~指得是小程序在圖形用戶接口意義下能與啟動它的應(yīng)用程序分開而操作,并代之以在桌面上被操作而與操作環(huán)境直接對話。
      “虛擬機”一詞指得是一種解釋程序、編譯程序、鏈接程序等,它包含在一個應(yīng)用程序或者操作環(huán)境中以使一個特定的編程語言例如Java的指令、偽代碼等的執(zhí)行變得方便。
      圖1是根據(jù)本發(fā)明的一個實施例的流程圖,它變換一個不可分Java小程序使其具有可分功能。
      任何預(yù)先存在的Java小程序都可以修改為一個可分的Java小程序,這里可分是相對本發(fā)明的各種實施例而言的。當定義/創(chuàng)建一個小程序時,可以修改其源代碼以包括用于分開該小程序的方法。第一步是在該小程序的類定義上加一個“實現(xiàn)可分”的語句(步驟110)。它實現(xiàn)一個稱作“可分”的接口。附錄A,為流式音頻小程序Jukebox的Java源代碼,在第二列顯示類定義“public class Jukeboxextends Applet implements Detachable.(公用類Jukebox擴展小程序?qū)崿F(xiàn)可分)”。短語“public class&lt;Applet Name&gt;extendsApplet(公用類&lt;小程序名&gt;擴展小程序)”為在主類定義中的所有小程序共用。然后短語“implements Detachable(實現(xiàn)可分)”可附加在任何這樣的定義后面開始修改&lt;小程序名&gt;的小程序以變?yōu)榭煞?。還需要幾個步驟來完成小程序可分性的建立。通過類定義激發(fā)的可分接口通過在該小程序的源代碼上增加幾個一般“方法”(見上面的定義)實現(xiàn)(步驟120)。這些方法雖然相對于可分接口是一般的,但是對本發(fā)明來說是特定的和唯一的,因為這些方法在Java開發(fā)的技術(shù)中先前未被定義。
      一般方法(generic method)允許Java小程序從啟動它的應(yīng)用程序中分出來,并允許該小程序具有任何運行在操作環(huán)境(例如SolarisTM,Sun Microsystems的一種產(chǎn)品,Solaris是SunMicrosystems公司在美國和其它國家的注冊商標)桌面上的普通應(yīng)用程序窗口的功能。如果一般方法對特定小程序的“視像感覺”不適合(在步驟130檢驗),則可以修改這些方法。一般方法可以修改以包括適合于該小程序的視像感覺或者特色的接口能力(步驟140)。例如,可能希望在一個可分的“對話”(以文字為基礎(chǔ)的用戶之間的交談)小程序中在該對話窗口重定義自身大小時顯示未重定義大小時不可見的長字符串。本領(lǐng)域的普通技術(shù)人員可以修改下面定義的方法以適合變換為一個可分小程序的小程序。下面敘述的一種這樣的修改是“控制器”方法的附加。如參照步驟120所述,這些一般方法加在在附錄A中公開的Jukebox小程序的例子的代碼上。
      一般可分接口方法及其修改1.“Detach”(分開)(在附錄A中表示為“public void detach(){”)分開方法是允許小程序從應(yīng)用程序分開的基本功能調(diào)用。狀態(tài)變量“被分開”(“isDetached”)設(shè)為真,指示小程序現(xiàn)在處于與連接狀態(tài)相對的分開狀態(tài)。語句“remove(UIpanel)”負責清除包括諸如用戶接口元件(亦即按鈕、文字框、菜單,圖標等)的部件的用戶接口“面板”。面板UIpanel被清除并交給作為例示的“被分開框”類?!氨环珠_框”(“Detached Frame”)類是一個基于標準Java虛擬機的與平臺無關(guān)的示例,因此可用于所有Java平臺。附錄B中表示了為被分開框類的代碼。被分開框被作為示例說明產(chǎn)生一個分開的窗口(與應(yīng)用程序獨立的小程序窗口),可以在其中顯示UIpanel部件(用戶接口元件)。語句“controller.makeAttachable(),”是修改一般分開方法的一個例子,它是Jukebox小程序的一個特定方法,用于創(chuàng)建一個用戶接口元件把小程序連回到應(yīng)用程序上。
      2.“Attach”(連接)(在附錄A中表示為“public void attach(){”連接方法用于把小程序重新連回應(yīng)用程序和關(guān)閉駐留在應(yīng)用程序窗口外面的分開的窗口。通過將isDetached設(shè)定為假,使小程序的狀態(tài)返回到連接狀態(tài)。接著,清除被分開框?qū)ο?。然后把UIpanel部件加回到應(yīng)用程序中(add(UIpanel)語句)。作為對一般方法Attach的小程序特定(在此例中為Jukebox小程序)的修改的例子是controller.makeDetachable語句,它在被包含時為將小程序分開而提供用戶接口元件。
      3.close(關(guān)閉)(在附錄A中表示為“public void close()”)關(guān)閉方法清除被分開框窗口,通常是小程序其后不再重新連回應(yīng)用程序的被分開框窗口。這一方法在希望完全清除小程序時很有用。
      這些一般方法在加在小程序上實現(xiàn)可分接口時,將使一個不可分小程序變得可分(具有從應(yīng)用程序窗口分開的功能)。
      圖2表示根據(jù)本發(fā)明的一個實施例,從一個應(yīng)用程序中啟動一個小程序時,該小程序行為的流程圖。
      雖然圖2是針對從一個應(yīng)用程序的分開,但其思想方法同樣可應(yīng)用于從任何通過虛擬機執(zhí)行小程序代碼的環(huán)境分開小程序。
      首先,根據(jù)步驟210,小程序必須在應(yīng)用程序的虛擬機中啟動。當用戶訪問包含啟動該小程序的語句的Web(萬維網(wǎng))站點(HTML頁面)時,這通常是自動實現(xiàn)的。假定該小程序已經(jīng)按照圖1的方法經(jīng)過變換,或者如果該小程序已經(jīng)能分開,則虛擬機檢驗(等待)用戶激活一個諸如按鈕的用戶元件來把該小程序從應(yīng)用程序中分開(在步驟220檢驗)。如果用戶激活“detach”用戶接口元件,那么該環(huán)境調(diào)用“Detach”方法(步驟230)。
      例如,如上所述,“Detach”方法的調(diào)用將導(dǎo)致其它指令的執(zhí)行。這些指令的一個關(guān)鍵結(jié)果是顯示一個分開的窗口,在其中可以顯示該小程序的控制或數(shù)據(jù)(步驟240)。一旦顯示器已顯示分開的窗口,則連續(xù)進行兩種檢驗。第一種是檢驗用戶是否改變分開的窗口的屬性(諸如大小、背景等)(步驟255)。該步驟不是從應(yīng)用程序中執(zhí)行的檢驗,而是由操作環(huán)境自身執(zhí)行的檢驗。如果要求改變被分開的窗口的某一屬性,則操作環(huán)境初始化并實現(xiàn)這些改變的屬性(步驟250)。這些改變包括重新定義分開的窗口大小、改變窗口的字體以及因為被分開的窗口既然是操作環(huán)境的一個窗口,因而可以不用參考和改變應(yīng)用程序窗口而執(zhí)行最小化和圖標化。另外,在分開的窗口中的小程序不再受應(yīng)用程序限制,而具有它自己的一組與應(yīng)用程序分開的圖形屬性--顏色、背景、字體、大小等。桌面可以控制分開的窗口的視像感覺,從而在一定程度上也可控制小程序的視像感覺。
      所做的第二種檢驗是詢問用戶是否激活用戶接口元件把該小程序連回到應(yīng)用程序(步驟260)。一旦小程序處于被分開框,則用于分開的用戶接口元件(按鈕等)將由用于將該小程序連回到應(yīng)用程序的一個用戶接口元件取代。用戶對將該小程序連接到應(yīng)用程序的請求首先引起“Attach”方法被調(diào)用(步驟270)。Attach方法包括如上所述的幾條指令,但具有關(guān)閉分開的窗口(步驟280)并將其從操作環(huán)境清除的基本功能。然后將小程序重新繪制在應(yīng)用程序窗口,就像在啟動時一樣,保持不是被分開的視像感覺,而回到啟動小程序時的應(yīng)用程序的視像感覺。小程序在被重新繪制在應(yīng)用程序中時,將以用于分開的用戶接口元件替換用于連接的用戶接口元件。從而,小程序可以在用戶希望時從連接狀態(tài)切換到分開狀態(tài)。圖2中未示出的是這種情況,即應(yīng)用程序在小程序被連接之前轉(zhuǎn)移到一個新的主機。在這種情況下,小程序不是被重新繪制在應(yīng)用程序窗口,而是成為該應(yīng)用程序的“歷史”的一部分。歷史是先前訪問的URL的一個紀錄,以便該應(yīng)用程序的用戶可以再次返回到那些URL站點。
      圖3表示為Java小程序定義的繼承層次結(jié)構(gòu)例子的圖。
      從對象或類繼承觀點來看為本發(fā)明的各種實施例有兩組繼承樹。第一組在圖3右側(cè)示出,為一般Java小程序繼承層次結(jié)構(gòu)。對象310被繼承到部件320中。部件320(因此包括對象310)被繼承到容器330中。容器330被繼承到面板340中。最后,面板340被繼承到小程序350中。
      圖3所示的第二組繼承是由被分開框的繼承產(chǎn)生的層次結(jié)構(gòu)。這一層次結(jié)構(gòu)是相對于本發(fā)明的各種實施例敘述的分開一個小程序的方法的表示。
      類似一般小程序繼承層次結(jié)構(gòu),圖3左側(cè)的被分開框繼承層次結(jié)構(gòu)示出對象315被繼承到部件325。類似地,部件325被繼承到容器335。圖3表示這兩種繼承在直到和包含容器這一級是相同的。因此,這些層次結(jié)構(gòu)在容器335和330處可以連接。繼承層次結(jié)構(gòu)的連接在概念上是面向?qū)ο蟮囊环N機制,它允許小程序350從應(yīng)用程序窗口轉(zhuǎn)移到被分開框,因為兩者都是容器類的事件。熟悉對象編程技術(shù)的技術(shù)人員能容易地使用上述被連接的對象層次結(jié)構(gòu)的屬性實現(xiàn)本發(fā)明的各種實施例。
      圖4表示在顯示器的屏幕上顯示的最終分開的小程序。
      圖4表示一個顯示器400,它可以是通過操作環(huán)境顯示一個應(yīng)用程序窗口410的任何監(jiān)視器、顯示器或其它視像設(shè)備。應(yīng)用程序窗口410表示為一個包括幾種元件例如圖片和URL(統(tǒng)一資源定位)(標以“l(fā)ocation”)的應(yīng)用程序窗口,但也可以是運行在操作環(huán)境下的任何窗口或顯示環(huán)境。顯示400表示運行在操作環(huán)境桌面430(見上面“桌面”的定義)上面的應(yīng)用程序窗口410。操作環(huán)境桌面430和應(yīng)用程序窗口410可以更接近或緊密結(jié)合,就像在Hot JavaviewsTM中那樣(Sun Microsystems公司的一種產(chǎn)品,Sun圖標和HotJava Views是Sun Microsystems公司在美國和其它國家的注冊商標)。可以修改本發(fā)明為去除應(yīng)用程序窗口任何遺留的視像和用戶接口限制,它們可能限制一個小程序,盡管可能似乎緊密地把應(yīng)用程序和環(huán)境結(jié)合在一起。在這個意義上,圖4在分開的窗口420上表示了一個叫作“Jukebox”的小程序,該小程序在某個URL站點啟動,最初包含在應(yīng)用程序窗口410中(見圖5)。圖4表示Jukebox小程序分開的狀態(tài)。
      在這一分開的狀態(tài)下,小程序控制功能“About”、“Stop”和“Play”顯示在分開的窗口中。本發(fā)明的一個重要方面是小程序在窗口顯示在410中的應(yīng)用程序的虛擬機(解釋程序)中連續(xù)運行或執(zhí)行其指令的能力。操作環(huán)境及其桌面430現(xiàn)在控制Jukebox小程序的窗口的總視像感覺。然后分開的窗口可以像桌面上的任何窗口一樣操作。應(yīng)用程序窗口410和該應(yīng)用程序的接口屬性不再控制、制約和限制小程序的GUI特性。另外,當應(yīng)用程序窗口410轉(zhuǎn)移到一個新主機的URL時,該小程序繼續(xù)在被分開框內(nèi)運行。雖然虛擬機是依賴于平臺的,亦即必須分解Java代碼為處理器/平臺的本地代碼,但是Java小程序及其代碼是與平臺無關(guān)的。當應(yīng)用程序完全關(guān)閉它所有的窗口時,分開的小程序也即關(guān)閉,因其應(yīng)該關(guān)閉。另外,盡管小程序被分開,它也必須停止執(zhí)行,因為它不再從應(yīng)用程序曾接觸的主機獲取數(shù)據(jù)。于是應(yīng)用程序保持在結(jié)束自己時同時結(jié)束小程序的控制,即使該小程序從應(yīng)用程序窗口的窗口和接口限制中分開。
      在被分開狀態(tài),還有其他幾種適用于被分開窗口的GUI修改未明確敘述。首先,不像常規(guī)的小程序,被分開的窗口420可以在桌面430上的一個區(qū)域縮為圖標,或最小化為一個工具條或其它GUI元件而不必將應(yīng)用程序窗口縮為圖標。從而最小化的小程序可以具有它自己的圖標。另外,被分開的窗口420可以在桌面上重新定義大小,在分開的狀態(tài)下不必參考在HTML(超文本標記語言)或其它指定從應(yīng)用程序窗口410之內(nèi)對該小程序調(diào)用的文件中的高度-寬度標簽。這允許被分開的小程序的外表比不可分的小程序具有更大的靈活性。其它對運行在桌面430上其它窗口適用的修改,諸如字體、字符大小、顏色、背景等的改變也適用于被分開的窗口420及其顯示的小程序。
      除對Jukebox小程序的控制之外,被分開的窗口420還包括顯示稱為“Attach”的“控制”(一個用戶接口元件),它在被激活時關(guān)閉被分開的窗口420并將該小程序回收到應(yīng)用程序窗口410中。這種“連接的”狀態(tài)表示在圖5。如果應(yīng)用程序窗口轉(zhuǎn)移到一個新主機的URL,那么該小程序被包括在該應(yīng)用程序的歷史中而不是在應(yīng)用程序窗口中立即執(zhí)行圖5表示處于連接狀態(tài)下的“Jukebox”小程序。
      圖5也有一個顯示設(shè)備500、一個操作環(huán)境桌面530和一個應(yīng)用程序窗口510。當一個小程序處在連接狀態(tài)時,應(yīng)用程序窗口510限制它。然而,如果該小程序成為可分的,則在應(yīng)用程序窗口的小程序的面板中顯示一個“分開”(“detach”)控制(按鈕),以便將該連接狀態(tài)修改為被分開的狀態(tài),產(chǎn)生如圖4所示的一個分開的窗口。另外的方案為,小程序可以自動啟動為如圖4所示的具有連接控制的被分開的狀態(tài)。也可以提供一種“觸發(fā)”方法來觸發(fā)小程序的狀態(tài),不管當前狀態(tài)是什么。這一觸發(fā)可以由一用戶接口元件在該小程序處于分開狀態(tài)時在分開窗口中啟動,也可以在該小程序處于連接狀態(tài)時在小程序面板(在應(yīng)用程序窗口中)啟動。在連接和分開兩種狀態(tài)下都希望一個統(tǒng)一的控制時也許希望這種反轉(zhuǎn)方法。圖5所示的連接狀態(tài)不像現(xiàn)有技術(shù),因為所示小程序通過“分開控制”是“可分的”。無可分性的小程序?qū)⒕窒抻趹?yīng)用程序自身,用戶便于在應(yīng)用程序窗口510中改變小程序面板550的顯示屬性。處于連接狀態(tài)下的一個可分小程序遭受同樣的限制,但可以通過激活“Detach”釋放出來。圖5的小程序的連接狀態(tài)保證在從一個“被分開的”狀態(tài)(圖4中所示)重新連接之前應(yīng)用程序窗口510的主機URL不改變。
      圖6表示根據(jù)本發(fā)明的一個實施例分開一個小程序的流程圖。
      上面相對于代碼附錄A敘述的“Detach”的方法定義并未全部在圖6中表示,但是本技術(shù)領(lǐng)域的技術(shù)人員將能理解,從本方法定義顯示的另外的或省略的步驟很容易實現(xiàn)。
      分開的第一步是例示一個稱為被分開框(Detached Frame)的新框(見圖1分開方法的說明)(步驟610)。然后使用該新框作為小程序的數(shù)據(jù)、內(nèi)容和用戶接口元件/控制的落點(drop-offpoint)。接著,把小程序部件從應(yīng)用程序的小程序面板清除(步驟620)。這些部件是一些對象,包括但不限于按鈕、控制、用戶接口元件、動作消息、對話框、數(shù)據(jù)等,它們可能由顯示設(shè)備顯示。然后把這些小程序部件加在所述新框的用戶接口上(步驟630)。另外,除其它部件外,把一個“Attach”用戶接口元件加在新框上,以便小程序可以重新連接到應(yīng)用程序(步驟640)。接著,通過將該新框映射或顯示在顯示設(shè)備上來生成分開的窗口(步驟645)。在處理過程的這一步,分開的窗口是一個能在操作環(huán)境的桌面環(huán)境之內(nèi)接合的空白窗口。如在本發(fā)明的各種實施例中實現(xiàn)的那樣,被分開的窗口將繼承連接在應(yīng)用程序窗口中的小程序面板的大小、字形、顏色特征(步驟655)。最后,包括連接控制的部件使用“Paint All”Java方法繪制在屏幕上(步驟660)。“Paint All”在Java編程中熟知,用于在顯示器或操作環(huán)境中顯示對象,而不是在應(yīng)用程序窗口的一部分顯示。這保證為被分開的小程序的部件被適當顯示,亦即不會與其它屏幕圖形交織在一起顯示,或從視圖中隱藏。
      圖7表示根據(jù)本發(fā)明的一個實施例,連接一個小程序的流程圖。
      再次說明,雖然圖7的流程圖可能由前面敘述的“Attach”方法改變,但是熟悉本技術(shù)領(lǐng)域的人員能夠很容易將上述方法的特征交換/增加到圖7的流程圖中,反之亦然。
      當連接控制被激活時,首先從虛擬機環(huán)境中清除通過調(diào)用分開方法例示的新框(步驟710)。從應(yīng)用程序環(huán)境清除的部件加回到應(yīng)用程序,并自動顯示在其中的面板中,如同一個典型的Java小程序一樣(步驟720)。接著,被分開的窗口被關(guān)閉(步驟730)或從操作環(huán)境中清除。最后,可以允許收集存儲器垃圾和存儲器的重分配(步驟740)以便使由分開方法例示的被分開框使用的資源重新返回到操作環(huán)境。
      雖然本發(fā)明特別參考各種


      ,但是應(yīng)該理解,這些附圖只用來說明,而不應(yīng)該把它們作為對本發(fā)明范圍的限制。本技術(shù)領(lǐng)域的技術(shù)人員可以在不離開本發(fā)明的精神和范圍下對本發(fā)明進行許多改變和修改。
      權(quán)利要求
      1.一種處理方法,包括步驟有實現(xiàn)一個可分接口;以及修改一個不可分小程序使其成為一個可分的小程序。
      2.根據(jù)權(quán)利要求1的處理方法,其特征在于,實現(xiàn)步驟包括步驟修改所述不可分小程序的類定義為包括一個可分接口。
      3.根據(jù)權(quán)利要求2的處理方法,其特征在于,修改步驟包括步驟為實現(xiàn)所述可分接口增加一組一般方法。
      4.根據(jù)權(quán)利要求3的處理方法,其特征在于,進一步包括步驟修改所述一般方法的任何一個以適合所希望的所述可分小程序的視像感覺。
      5.根據(jù)權(quán)利要求3的處理方法,其特征在于,所述增加的步驟包括步驟增加用于將所述可分小程序置于一個可分狀態(tài)的第一方法;增加用于將處于被分開狀態(tài)的所述可分小程序置回到連接狀態(tài)的第二方法。
      6.根據(jù)權(quán)利要求5的處理方法,其特征在于,進一步包括步驟增加用于在所述狀態(tài)之間進行觸發(fā)的第三方法。
      7.根據(jù)權(quán)利要求5的處理方法,其特征在于,進一步包括步驟增加完全清除處于分開狀態(tài)的所述可分小程序的第四方法。
      8.控制排除應(yīng)用程序限制的小程序行為的處理方法,包括的步驟有從所述應(yīng)用程序分開所述小程序,所述小程序繼續(xù)使用所述應(yīng)用程序的虛擬機以執(zhí)行小程序指令;顯示一個分開的窗口以可視地顯示所述小程序;使得能修改所述被分開的窗口的視覺特性。
      9.根據(jù)權(quán)利要求8的處理方法,其特征在于,分開步驟包括步驟當所述應(yīng)用程序在圖形上限制小程序時,激活一個用戶接口元件以將小程序分開;調(diào)用分開方法以執(zhí)行一組與實現(xiàn)所述分開、顯示和使能步驟相一致的指令。
      10.根據(jù)權(quán)利要求8的處理方法,其特征在于,進一步包括將所述小程序連接到所述應(yīng)用程序的步驟。
      11.根據(jù)權(quán)利要求10的處理方法,其特征在于,連接步驟包括步驟調(diào)用一個連接方法;關(guān)閉所述被分開的窗口;在所述應(yīng)用程序中重新繪制所述小程序。
      12.根據(jù)權(quán)利要求9的處理方法,其特征在于,調(diào)用分開方法的步驟啟動步驟例示一個新框;從所述應(yīng)用程序中清除小程序的部件;將所述清除的部件加到所述新框中;將所述被分開的窗口映射到一個顯示設(shè)備上;把所述增加的部件繪制到所述顯示設(shè)備上,所述繪制發(fā)生在所映射的分開的窗口內(nèi)。
      13.用于控制一個小程序的圖形用戶接口系統(tǒng),包括一個由操作環(huán)境定義的桌面;一個作為所述桌面上的覆蓋而可視地顯示的應(yīng)用程序窗口,所述應(yīng)用程序窗口在所述小程序處于連接狀態(tài)時顯示和在視像上限制所述小程序;一個在所述桌面上直接運行的分開的窗口,所述分開的窗口只在所述小程序處于被分開的狀態(tài)時被顯示在所述桌面上,所述分開狀態(tài)清除所述小程序在所述應(yīng)用程序窗口中的視像限制和顯示。
      14.根據(jù)權(quán)利要求13的圖形用戶接口系統(tǒng),其特征在于,所述分開的窗口包括一個用戶接口元件,用于能夠使所述小程序置于連接狀態(tài)。
      15.根據(jù)權(quán)利要求14的圖形用戶接口系統(tǒng),其特征在于,所述應(yīng)用程序窗口包括一個用戶接口元件,用于能夠使所述小程序置于分開狀態(tài)。
      16.根據(jù)權(quán)利要求14的圖形用戶接口系統(tǒng),其特征在于,當所述小程序被置于連接狀態(tài)時,所述分開的窗口關(guān)閉。
      17.根據(jù)權(quán)利要求13的圖形用戶接口系統(tǒng),其特征在于,所述小程序在連接狀態(tài)下被初始啟動。
      18.根據(jù)權(quán)利要求13的圖形用戶接口系統(tǒng),其特征在于,所述小程序在被分開的狀態(tài)下被初始啟動。
      19.一種計算機可讀介質(zhì),其上存儲有可由一個可由應(yīng)用程序解釋的小程序代碼,所述小程序包括指令序列,當這些指令序列在被一個處理器執(zhí)行時引起所述處理器執(zhí)行下述步驟從所述應(yīng)用程序分開所述小程序,所述小程序繼續(xù)使用所述應(yīng)用程序的一個虛擬機以便利于所述處理器執(zhí)行所述指令序列;顯示一個分開的窗口以可視地顯示所述分開的小程序;使能修改所述被分開的窗口的視覺特性。
      20.一種計算機軟件產(chǎn)品,具有可由一個應(yīng)用程序解釋的小程序代碼,所述計算機軟件產(chǎn)品分配給一個處理器,所述小程序代碼包括指令序列,這些指令序列在被所述處理器執(zhí)行時引起所述處理器執(zhí)行下述步驟從所述應(yīng)用程序分開所述小程序,所述小程序繼續(xù)使用所述應(yīng)用程序的一個虛擬機以便利于所述處理器執(zhí)行所述指令序列;顯示一個分開的窗口以可視地顯示所述分開的小程序;使能修改所述被分開的窗口的視覺特性。
      全文摘要
      本發(fā)明公開了一種用于把Java小程序從提供執(zhí)行這些小程序的Java核心程序的應(yīng)用程序,例如一個瀏覽器的限制中分開的方法和系統(tǒng)。從而被分開的小程序可以出現(xiàn)在一個分開的窗口中,更易于由操作環(huán)境桌面控制。Java小程序繼續(xù)在應(yīng)用程序的虛擬機中運行,但是不再考慮應(yīng)用程序的圖形接口限制。另外,如果啟動小程序的應(yīng)用程序轉(zhuǎn)移到一個新的URL站點,則Java小程序繼續(xù)運行。此外,小程序在被分開后可以重新連接在應(yīng)用程序而出現(xiàn)在該應(yīng)用程序的歷史中。
      文檔編號G06F9/445GK1208889SQ9811662
      公開日1999年2月24日 申請日期1998年7月27日 優(yōu)先權(quán)日1997年7月25日
      發(fā)明者B·拉扎維, E·哈斯巴格爾 申請人:太陽微系統(tǒng)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1