frame層次結構圖:
每乙個頂級容器,都有乙個隱藏的中間容器,叫做root pane。root pane 管理著content pane 、menu bar 和 其它一些容器。
例如:
jframe frame=new jframe("測試");當程式執行出來後,會發現背景色並沒有設定成功,這是因為content pane繪製在root pane之上,所以content pane的背景覆蓋了,所以看不見。frame.setbackground(color.red);
frame.setsize(300, 300);
frame.setvisible(
true);
把content pane隱藏了就可以了:
jframe frame=new jframe("測試");這樣解決並不好,因為設定在content pane上的元件就不可見了,frame.getcontentpane().setvisible(
false);//
設定content pane不可見
frame.setbackground(color.red);
frame.setsize(300, 300);
frame.setvisible(
true);
通常設定為這樣:
jframe frame=new jframe("測試");上面中的 p.setopaque(false) 表示設定jpane為背景透明的,只有jpane背景透明才可以看見content panel的背景。jpanel p=new
jpanel();
frame.getcontentpane().setbackground(color.red);
p.setopaque(
false);//
設定透明
frame.add(p);
//在p上新增一些元件...
frame.setsize(300, 300);
frame.setvisible(
true);
上面修改的是content panel的背景,其實也可以修改jpane的背景:
jframe frame=new jframe("測試");這裡需要注意的就是jpanel元件是不透明的,也就是isopaque()返回true。不過其它一些元件預設就是透明的,比如jlabeljpanel p=new
jpanel();
frame.add(p);
p.setopaque(
true);//
設定不透明,預設是不透明的
p.setbackground(color.red);//
設定背景
frame.setsize(300, 300);
frame.setvisible(
true);
jframe frame=new jframe("測試");jpanel p=new
jpanel();
jlabel label=new jlabel("test");
label.setopaque(
true);//
設定不透明
label.setbackground(color.red);//
設定背景
JFrame介面層次結構
學到swing介面的時候,難免會遇到設定背景的情況,那麼如何新增就略是複雜了。原本以為是直接在jframe介面直接新增個就好,可是卻會發現這根本行不通。之後才知道jframe新增有幾個步驟,一般是在layeredpane最底層新增乙個帶的標籤,然後將 contentpane設定為透明,並將上面的部件...
JFrame類的用法
1 jframe 建立乙個無標題的視窗。2 jframe string s 建立乙個標題為s的視窗。3 public void setbounds int a,intb,int width,int heigth 4 public void setsize int width,int heigth 5...
JFrame常用的幾個方法
setextendedstate jframe.maximized both 介面顯示最大化 setundecorated true 去掉視窗的裝飾,刪除標題欄 getrootpane setwindowdecorationstyle jrootpane.none 採用指定的視窗裝飾風格 getro...