国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

關(guān)于JAVA8 Window類(lèi)的使用方法

2018-11-01 05:19:12徐洪位
電腦知識(shí)與技術(shù) 2018年18期
關(guān)鍵詞:圖標(biāo)調(diào)用列表

徐洪位

摘要:在進(jìn)行JAVA程序設(shè)計(jì)時(shí),窗口是常用的一個(gè)對(duì)象,窗口對(duì)象是沒(méi)有邊框和菜單欄的頂級(jí)窗口。窗口的默認(rèn)布局是邊界布局。一個(gè)窗口必須有一個(gè)框架、對(duì)話(huà)框或另一個(gè)定義為它的所有者的窗口。該文對(duì)Window類(lèi)的使用和設(shè)置進(jìn)行了簡(jiǎn)要的介紹。

關(guān)鍵詞:Window;Illegal Argument Exception;Graphics Configuration

中圖分類(lèi)號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)18-0069-02

1 概述

在多屏幕環(huán)境中,您可以通過(guò)使用窗口(窗口、GraphicsConfiguration)創(chuàng)建窗口,在不同的屏幕設(shè)備上創(chuàng)建一個(gè)窗口。GraphicsConfiguration對(duì)象是目標(biāo)屏幕設(shè)備的GraphicsConfiguration對(duì)象之一。

在虛擬設(shè)備多屏幕環(huán)境中,桌面區(qū)域可以跨越多個(gè)物理屏幕設(shè)備,所有配置的邊界都相對(duì)于虛擬設(shè)備坐標(biāo)系統(tǒng)。虛擬坐標(biāo)系統(tǒng)的原點(diǎn)位于主物理屏幕的左上角。根據(jù)虛擬設(shè)備中主屏幕的位置,可能會(huì)出現(xiàn)負(fù)坐標(biāo),如圖1所示:

其中Virtual device:虛擬設(shè)備;physical screen:物理屏幕;primary physical screen:主物理屏幕。

2 使用方法簡(jiǎn)介

當(dāng)在一個(gè)環(huán)境中調(diào)用setLocation方法時(shí),必須將一個(gè)虛擬坐標(biāo)傳遞給這個(gè)方法。類(lèi)似地,在窗口中調(diào)用getLocationOnScreen將返回虛擬設(shè)備的坐標(biāo)。調(diào)用GraphicsConfiguration的getBounds方法,在虛擬坐標(biāo)系統(tǒng)中找到它的原點(diǎn)。

下面的代碼將窗口的位置設(shè)置為(10,10)相對(duì)于相應(yīng)圖形配置的物理屏幕的原點(diǎn)。如果沒(méi)有考慮到GraphicsConfiguration的邊界,窗口位置將設(shè)置為(10,10)相對(duì)于虛擬坐標(biāo)系統(tǒng),并且會(huì)出現(xiàn)在主物理屏幕上,這可能與指定圖形配置的物理屏幕不同。

Window w = new Window(Window owner, GraphicsConfiguration gc);

Rectangle bounds = gc.getBounds();

w.setLocation(10 + bounds.x, 10 + bounds.y);

注意:頂層窗口的位置和大小(包括窗口、框架和對(duì)話(huà)框)都在桌面窗口管理系統(tǒng)的控制之下。調(diào)用setLocation、setSize和setBounds是被轉(zhuǎn)發(fā)到窗口管理系統(tǒng)的請(qǐng)求(而不是指令)。但是,在某些情況下,窗口管理系統(tǒng)可能會(huì)忽略這些請(qǐng)求,或者修改所請(qǐng)求的幾何形狀,以使窗口更接近于桌面設(shè)置。

由于事件處理的異步性質(zhì),getBounds、getLocation、getLocationOnScreen和getSize返回的結(jié)果可能無(wú)法反映屏幕上的窗口的實(shí)際幾何形狀,直到最后一個(gè)請(qǐng)求被處理。在處理后續(xù)請(qǐng)求的過(guò)程中,這些值可能會(huì)相應(yīng)地發(fā)生變化,而窗口管理系統(tǒng)則滿(mǎn)足這些請(qǐng)求。

一個(gè)應(yīng)用程序可以任意設(shè)置一個(gè)看不見(jiàn)的窗口的大小和位置,但是窗口管理系統(tǒng)可能隨后改變它的大小和/或窗口可見(jiàn)的位置。將生成一個(gè)或多個(gè)組件,以指示新的幾何圖形。

Windows能夠生成下列窗口事件:窗口打開(kāi),窗口關(guān)閉,窗口集中,窗口集中。

3 構(gòu)造器使用概述

3.1 Window

格式:public Window(Frame owner);

構(gòu)造一個(gè)新的、最初看不見(jiàn)的窗口,其中指定的框架作為它的所有者。除非它本身在屏幕上顯示,否則該窗口將不能被聚焦。

如果有一個(gè)安全管理器,它被調(diào)用時(shí)將來(lái)檢查AWTPermission(“showwindowwithoutarningbanner”)。如果這個(gè)檢查失敗了,那么就會(huì)創(chuàng)建一個(gè)警告標(biāo)志。

參數(shù):如果窗口沒(méi)有所有者,則該框架作為本身所有或null。

異常拋出:

IllegalArgumentException:如果所有者的GraphicsConfiguration不是來(lái)自屏幕設(shè)備;

HeadlessException:當(dāng)GraphicsEnvironment.isHeadless返回true時(shí)產(chǎn)生異常。

3.2 Window

格式:public Window(Window owner)

構(gòu)造一種新的、最初看不見(jiàn)的窗口,它的所有者是指定的窗口。除非它的最近的擁有框架或?qū)υ?huà)框顯示在屏幕上,否則這個(gè)窗口將不會(huì)成為焦點(diǎn)。

使用方法與第一個(gè)構(gòu)造器相同。

3.3 Window

格式:public Window(Window owner,GraphicsConfiguration gc)

構(gòu)造一個(gè)新的,最初不見(jiàn)的窗口,有指定的所有者窗口和一個(gè)屏幕設(shè)備的圖形配置。除非它最近的擁有框架或?qū)υ?huà)框顯示在屏幕上,否則該窗口將無(wú)法集中。

如果有一個(gè)安全管理器設(shè)置,它將調(diào)用檢查AWTPermission(“showwindowwithoutarningbanner”)。如果這個(gè)檢查失敗了,那么就會(huì)創(chuàng)建一個(gè)警告標(biāo)志。

參數(shù):

owner—如果此窗口沒(méi)有所有者,則該窗口作為所有者或null。

gc-目標(biāo)屏幕設(shè)備的圖形配置;如果gc為空,則假定系統(tǒng)默認(rèn)為GraphicsConfiguration。

異常拋出:

IllegalArgumentException:如果gc不是來(lái)自屏幕設(shè)備;

HeadlessException -當(dāng)GraphicsEnvironment.isHeadless()返回true值。

4 主要方法使用說(shuō)明

4.1 getIconImages

格式:public List getIconImages()

返回要顯示為這個(gè)窗口的圖標(biāo)的圖像序列。

該方法返回一個(gè)內(nèi)部存儲(chǔ)列表的副本,因此返回的對(duì)象上的所有操作都不會(huì)影響窗口的行為。

返回值:如果該窗口沒(méi)有圖標(biāo)圖像,則為該窗口的圖標(biāo)圖像的副本或空列表。

4.2 setIconImages

格式:public void setIconImages(List<? extends Image> icons)

設(shè)置要顯示為該窗口的圖標(biāo)的圖像序列。隨后對(duì)getIconImages的調(diào)用將總是返回一個(gè)圖標(biāo)列表的副本。

根據(jù)平臺(tái)功能,不同維度的一個(gè)或多個(gè)圖像將被用作窗口的圖標(biāo)。從一開(kāi)始,這些圖標(biāo)就會(huì)被掃描到最合適的尺寸。如果列表包含相同大小的多個(gè)圖像,則將使用第一個(gè)。無(wú)主窗口,沒(méi)有指定的圖標(biāo)使用平臺(tái)默認(rèn)圖標(biāo)。所有者窗口的圖標(biāo)可以從所有者繼承,除非顯式地重寫(xiě)。將圖標(biāo)設(shè)置為null或空列表將恢復(fù)默認(rèn)行為。

注意:本機(jī)窗口系統(tǒng)可以根據(jù)上下文(例如窗口裝飾、窗口列表、任務(wù)欄等)使用不同維度的不同圖像來(lái)表示窗口。它們也可以只對(duì)所有上下文使用單個(gè)圖像,或者根本不使用圖像。

參數(shù):icons-顯示的圖標(biāo)圖像列表。

4.3 setIconImage

格式:public void setIconImage(Image image)

設(shè)置要顯示為該窗口的圖標(biāo)的圖像。這個(gè)方法可以代替setIconImages()來(lái)指定單個(gè)圖像作為窗口的圖標(biāo)。

語(yǔ)句:setIconImage(image) 等價(jià)于:

ArrayList imageList = new ArrayList();

imageList.add(image);

setIconImages(imageList);

注意:本機(jī)窗口系統(tǒng)可以根據(jù)上下文(例如窗口裝飾、窗口列表、任務(wù)欄等)使用不同維度的不同圖像來(lái)表示窗口。它們也可以只對(duì)所有上下文使用單個(gè)圖像,或者根本不使用圖像。

參數(shù): image -要顯示的圖標(biāo)圖像。

4.4 addNotify

格式:public void addNotify()

通過(guò)創(chuàng)建與本機(jī)屏幕資源的連接,使此窗口可顯示。這個(gè)方法是由工具箱內(nèi)部調(diào)用的,不應(yīng)該被程序直接調(diào)用。

4.5 removeNotify

格式:public void removeNotify()

通過(guò)刪除與本機(jī)屏幕資源的連接,使此容器無(wú)法顯示。使一個(gè)容器無(wú)法顯示,將使所有的孩子都無(wú)法顯示。這個(gè)方法是由內(nèi)部工具箱調(diào)用的,不應(yīng)該被程序直接調(diào)用。

4.6 toBack

格式:public void toBack()

如果這個(gè)窗口是可見(jiàn)的,將這個(gè)窗口發(fā)送到后面,如果它是焦點(diǎn)或活動(dòng)窗口,可能會(huì)導(dǎo)致它失去焦點(diǎn)或激活。

將此窗口放置在堆棧順序的底部,并在此VM的任何其他窗口后面顯示它。這個(gè)窗口是不可見(jiàn)的。有些平臺(tái)不允許其他窗口擁有的窗口出現(xiàn)在其所有者的下方。每一次嘗試都將使這扇窗戶(hù)盡可能的低,在堆疊順序;但是,開(kāi)發(fā)人員不應(yīng)該假設(shè)這種方法會(huì)在任何情況下將這個(gè)窗口移到所有其他窗口之下。

由于本地窗口系統(tǒng)的變化,無(wú)法保證對(duì)焦點(diǎn)和活動(dòng)窗口的更改。開(kāi)發(fā)人員永遠(yuǎn)不能假定這個(gè)窗口不再是焦點(diǎn)或活動(dòng)窗口,直到這個(gè)窗口接收到WINDOW_LOST_FOCUS或window_deactive事件。在最頂部的窗口是焦點(diǎn)窗口的平臺(tái)上,這個(gè)方法可能會(huì)導(dǎo)致這個(gè)窗口失去焦點(diǎn)。在這種情況下,這個(gè)VM中的下一個(gè)最高的、可聚焦的窗口將得到焦點(diǎn)。在堆疊順序通常不會(huì)影響焦點(diǎn)窗口的平臺(tái)上,這種方法可能會(huì)使焦點(diǎn)和活動(dòng)窗口保持不變。

參考文獻(xiàn):

[1] 戰(zhàn)曉蘇, 江凌. Java 8編程參考官方教程[M]. 9版. 北京: 清華大學(xué)出版社, 2015.

[2] 陸明剛, 勞佳. Java 8實(shí)戰(zhàn)[M]. 北京: 人民郵電出版社, 2016.

[3] 劉利明, 張莉萍. JavaWeb開(kāi)發(fā)實(shí)戰(zhàn)1200例[M]. 北京: 清華大學(xué)出版社, 2011.

猜你喜歡
圖標(biāo)調(diào)用列表
巧用列表來(lái)推理
學(xué)習(xí)運(yùn)用列表法
擴(kuò)列吧
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
Android手機(jī)上那些好看的第三方圖標(biāo)包
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
中國(guó)風(fēng)圖標(biāo)設(shè)計(jì)
基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
有意思的廁所圖標(biāo)
讀者(2015年13期)2015-05-14 11:41:05
不含3-圈的1-平面圖的列表邊染色與列表全染色
凌云县| 汝州市| 阜康市| 晋州市| 大埔区| 嘉义县| 博乐市| 耒阳市| 本溪市| 连平县| 专栏| 申扎县| 庆元县| 淳化县| 台中县| 合水县| 特克斯县| 汉川市| 新宁县| 凤凰县| 增城市| 沂源县| 大竹县| 琼海市| 莲花县| 宁阳县| 龙山县| 泰安市| 婺源县| 铁岭市| 托克逊县| 周口市| 东山县| 阿鲁科尔沁旗| 章丘市| 伊金霍洛旗| 棋牌| 康平县| 五大连池市| 探索| 光泽县|