點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程第十二章匯總
12.5 使用容器
容器是以Container類(lèi)為基礎(chǔ)的組件,因此,所有的Swing組件都是容器。Container類(lèi)是Window類(lèi)的直接基類(lèi),它提供了包含其他組件的能力。由于Container類(lèi)是一個(gè)抽象類(lèi)(abstract),所以你不能創(chuàng)建Container的實(shí)例。由于JFrame或JDialog是如同Window這樣的子類(lèi)對(duì)象,所以它繼承了包含其他組件的能力。
注意,容器不能包含Window類(lèi)對(duì)象或從Window類(lèi)派生的類(lèi)對(duì)象,可以包含任何由Comonent派生類(lèi)的其他類(lèi)對(duì)象。
容器中的組件顯示在屏幕上容器占據(jù)的區(qū)域內(nèi),例如,一個(gè)對(duì)話框可能包含提交選項(xiàng)的JList對(duì)象,提交其他選項(xiàng)的JCheekBox對(duì)象以及描述結(jié)束對(duì)話框或輸入選項(xiàng)時(shí)用戶可以使用的JButton按鈕對(duì)象,所以這些組件都顯示在對(duì)話框的邊框內(nèi)。當(dāng)然,容器要負(fù)責(zé)顯示這些被包含的組件,同時(shí)還要控制使用Layout manager嵌入的組件。在了解布局管理器的功能以及組件的布局如何確定之前,讓我們查看一下Container類(lèi)中定義的基本方法以及所有容器可用的方法。
你可以使用Container類(lèi)中定義的下列方法查看容器對(duì)象中有關(guān)組件。
如果我們有一個(gè)Container類(lèi)對(duì)象content,或許是JFrame窗口的內(nèi)容窗格,我們就 可以運(yùn)用下列的語(yǔ)句在Container中迭代。
Component aComponent-null; //Stores a Component
int numComponents;conent.getComponentCount(); //Get the count
for(int i=0;i
{
aComponent.content.getComponent(i); //Get each component
//to something with it....
}
在for循環(huán)語(yǔ)句中依次檢索content中的每個(gè)組件,我們也可以這樣檢索它們:
component[] theComponts=content.getComponents();//Get all components
for(int i=0;j
{
//Do something with theComponets[i]....
}
將組件添加到容器中
存儲(chǔ)在容器中的組件被記錄在Container對(duì)象內(nèi)的一個(gè)數(shù)組y.當(dāng)目前的數(shù)組與組件樣多時(shí),若再添加組件。數(shù)組的尺寸就要增加。你可以使用方法add()組件添加到容器中。Container類(lèi)定義了下列4個(gè)重載的add()方法版本:
注意,添加一個(gè)組件并不替代容器中已有的任何組件。當(dāng)你在給定位置上增加一個(gè)組件時(shí)。其他的組件將依次騰出空間顯示新的組件。然而,一個(gè)組件在同一時(shí)刻只能位于個(gè)容器中,將一個(gè)存在于另一個(gè)容器中的組件添加到這個(gè)容器中,這個(gè)組件將會(huì)從原來(lái)的容器中刪去。
為了試試將一個(gè)組件添加到一個(gè)容器中,我們需要知道add()方法中的約束是什么,并查看一下容器中的組件布局是如何管理的。
相關(guān)推薦:
2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |