無論元件是否是輕量級的,都有幾個重要的屬性:如下:
位置大小
背景和前景色
字型可見性
啟用或無效狀態
位置:可以用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.元素加入棧前...