元件的性質及容器小結

2021-04-23 03:11:24 字數 2767 閱讀 4724

無論元件是否是輕量級的,都有幾個重要的屬性:如下:

位置大小

背景和前景色

字型可見性

啟用或無效狀態

位置:可以用component的getlocation或getbounds方法.前者返回乙個point物件,包含x和y座標.後者返回乙個rectangle物件,同時包含元件的位置和大小.

同理,可以使用setbounds和setlocation來調整元件的位置和大小.如

f.setbounds(40,50,250,200)

f.setbounds(new rectangle(40,50,250,200));

若元件排生自jcomponent,還可使用另外兩種形式的getlocation和getbounds方法

public point getlocation(point pos);

public rectangle getbounds(rectangle rect);

這樣可以不用每次都建立乙個新的point物件,可提高效率.如

jcomponent comp=..... //得到一元件列表

point p=new point();

for(int i=; i

通過下列語句將按鈕放置在窗體上

container cp=f.getcontentpane();

cp.setlayout(new flowlayout());

cp.add(b);

乙個按鈕若呼叫getlocation,返回的座標是相對於content pane的,而不是相對於frame或整個screen的.

大小:可使用getsize或getbounds獲得

public dimension getsize(); //包含了元件的寬度和高度

public rectangle getbounds();

若派生自jcomponent,還有下列方法

public dimension getsize(dimension size);

public rectangle getbounds(rectangle rect);

調整窗體大小:

若不允許使用者調整窗體或對話方塊大小,可使用setresizable.如

jframe f=new jframe("fixed size frame");

f.setresizable(false);  //此操作只可限制使用者,程式**仍可改變大小

若想讓視窗填滿整個螢幕,則指定與螢幕本身相匹配的大小

f.setsize(f.gettoolkit().getscreensize()); //注意此時仍能拖動視窗,與最大化的狀態(不能拖動)不一樣

字型:public synchronized void setfont(font f);

public font getfont();

其中的font為

public font(string name,int style, int size);

style有font.plain, font.bold, font.italic等

如:jbutton b=new jbutton("italic,14-point, serif");

b.setfont(new font("sansserif", font.italic, 14));

可見性:

public boolean isvisible();

public void setvisible(boolean state);

另外還有乙個方法public boolean isshowing();指出該元件是否在螢幕上是實際可見的,如果元件自身和其所有父容器都是可見的,那麼該函式就返回true.

注意在元件建立時,可見性屬性初始化為true,除了頂層容器jframe, jwindow和jdialog,它們最初都是不可見的.

啟用或無效狀態:

setenabled(true)

setenabled(false)

容器和布局管理器

容器容器新增元件的常用方法:

public component add(component comp);

public component add(component comp, int index);

刪除元件的方法:

public void remove(int index);

public void remove(component comp);

public void removeall();

pack()方法自動調整視窗首選大小和布局,去適應該視窗的容器組建。如果這個視窗和它的容器之前沒有顯示出來的話,在計算首選大小之前,先顯示出它們。那樣的話,在首選大小被計算出來之後,就能正確顯示了

標籤:public jlabel();

public jlabel(string text);

public jlabel(string text, int horizontalalignment);

垂直方向可以用setverticalalignment()設定

引數有swingconstants.top, swingconstants.center,swingconstants.bottom

水平方向用sethorizontalalignment()設定

引數有swingconstants.left, swingconstants.center,swingconstants.right

jlabel預設是透明的,故與所在容器的背景色相同,且使用setbackground改變其背景色並不具有可見的效果.但可使用setopaque方法使其不透明再設定背景色.

UI元件和容器元件的拆分

1.首先,以前面的todolist為例 以下是原來的todolist中的render函式中的內容,我們可以將元件中關於ui渲染頁面的封裝到乙個檔案中 render 2.在src目錄下新建乙個檔名為todolistui.js。將剛剛的render中的內容複製到todolistui裡面。3 這裡需要進一...

異或的性質及運用

文章 異或是一種基於二進位制的位運算,用符號xor或者 表示,其運算法則是對運算子兩側數的每乙個二進位制位,同值取0,異值取1。它與布林運算的區別在於,當運算子兩側均為1時,布林運算的結果為1,異或運算的結果為0。簡單理解就是不進製加法,如1 1 0,0 0 0,1 0 1。性質1 交換律 2 結合...

單調棧的性質及應用

zzuli 題意 給你一串串行,要你求所有子串行的最小值之和。n很大,無法暴力 思路 完美的單調棧模板 這裡簡要介紹下單調棧的性質,其他的都沒用 單調棧的維護是 o n 級的時間複雜度,因為所有元素只會進入棧一次,並且出棧後再也不會進棧了。單調棧的性質 1.單調棧裡的元素具有單調性 2.元素加入棧前...