熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java:Applet布局問題

2013-11-23 19:00:43  來源: Java核心技術 

  applet布局問題

  按鈕標簽是怎樣加入到applet程序(容器)當中去的呢?

  需要用到布局容器管理器(LayoutManager)它用於協助容器確定加入的組件(按鈕等)應該放置的位置

  awt提供了中常用的布局容器管理器

  >>FlowLayout

  >>BorderLayout

  >>GridLayout

  >>CardLayout

  applet默認使用FlowLayoutapplet使用容器管理器的方法如下

  setLayout (new BorderLayout)

  setLayout()方法是applet類繼承Container類中的方法而來因此在applet程序中可以直接調用

  applet加入按鈕一定需要上面的容器管理器麼?

  不一定可以先 setLayout(null); 然後自己確定組件放置的細節代碼麻煩

  如果你不用布局管理器(Jframe中的用法)

  JButton    b    =    new    JButton(hello);

  getContentPane()add(b);

  bsetLocation();

  以下是容器管理器常用的種布局寫法

  =================================================

  applet 使用 FlowLayout 布局

  指定布局:setLayout(new FlowLayout())

  加入組件add(組件實例)

  作用由左到右由上到下依次放置組件

  加入組件使用applet類繼承Container類中的方法成員add();

  =================================================

  import javaawt*;

  import javaapplet*;

  public class UseFlowLayout extends Applet{

  public void init()

  {

  setLayout(new FlowLayout()); //因為是默認管理器可以省略

  //setLayout()方法是applet類繼承Container類中的方法而來因此在applet程序中可以直接調用

  for(int i = ; i<;i++){

  add(new Button(按鈕 + i )); //加入個按鈕

  //applet類繼承Container類中的方法成員add();

  }

  }

  }

  ==================================================

  applet使用BorderLayout();

  指定布局setLayout(new BorderLayout());

  加入組件add(組件實例位置常量)

  作用此種布局將容器劃分為個區域分別是上

  [位置常量]指定了組件將要放置的位置

  如果組件不足放在中間位置的組件將自動填充空余位置

  ==================================================

  import javaawt*;

  import javaapplet*;

  public class UseBorderLayout extends Applet{ //接口Applet

  public void init()

  {

  setLayout(new BorderLayout()); //因為是默認管理器可以省略

  add(new Button(按鈕上)BorderLayoutNORTH);

  add(new Button(按鈕右)BorderLayoutEAST);

  //?setHgap();想設置組件的水平和垂直的邊距看下面的GridLayout使用方法

  add(new Button(按鈕中)BorderLayoutCENTER);

  //add(new Button(按鈕下)BorderLayoutSOUTH) //引上是為了測試自動填充效果

  //add(new Button(按鈕左)BorderLayoutWEST) //引上是為了測試自動填充效果

  }

  }

  ==================================================

  applet使用GridLayout();

  指定布局setLayout(new GridLayout(列數行數))

  加入組件add(組件實例)

  作用>右>下分成指定的網格

  ==================================================

  import javaawt*;

  import javaapplet*;

  public class UseGridLayout extends Applet{ //接口Applet

  public void init()

  {

  //setLayout(new GridLayout());           //書上的寫法我的寫法如下

  //聲明一個布局管理器為表格形式

  GridLayout GL = new GridLayout();

  GLsetHgap();     //設置組件的水平和垂直的邊距

  GLsetVgap();

  thissetLayout(GL);         //是哪個類對象的方法?!是this:當前applet

  //加入按鈕

  for(int i=;i<;i++)

  {

  thisadd(new Button(按鈕 + i)) ;

  //add方法是哪個類對象的?!也是當前面板的方法

  }

  }

  }

  =========================================================

  +applet使用 CardLayout容器管理器

  指定容器管理器setLayout(new CardLayout())

  加入組件add(組件實例指定組件名稱)

  顯示組件CLshow(thisbutton)nextpreviousfirst

  作用組件加入容器applet中然後按照需要調出被調出的組件遮蓋本容器內的所有組件

  注意applet是容器但不是唯一的applet還可以加入多個容器!詳細內容明天再學

  =========================================================

  import javaawt*;

  import javaapplet*;

  public class UseCardLayout extends Applet{ //接口Applet

  public void init()

  {

  //指定當前applet布局管理器為CardLayout

  CardLayout CL = new CardLayout();

  setLayout(CL);

  //加入按鈕

  for(int i=;i<;i++)

  {

  add(new Button(按鈕 + i)button + i) ;

  }

  CLshow(thisbutton);       //將指定按鈕顯示出來

  CLnext(this);        //轉到下一個按鈕這裡說明循環顯示的效果顯示出是button;

  //還有CLfirst(this)等方法==如lastpreviousnextfirst顯示指定的就用上面的方法

  }

  }

  以上是applet作為容器需要用到的最常用的組件布局辦法

  實際上一個容器還可以使用多個LayoutManager

  用Panel!

  Panel屬於awt組件的容器類也就是說它可以用來放置其他的awt組件

  她的重要特點就是擁有獨立的坐標系統和layoutmanager

  Panel 與 LayoutManager結合可以做出更符合需要的applet界面!

  附applet測試頁面

  <!DOCTYPE HTML PUBLIC //WC//DTD HTML Transitional//EN>

  <HTML>

  <HEAD>

  <TITLE> New Document </TITLE>

  <META NAME=Generator CONTENT=EditPlus>

  <META NAME=Author CONTENT=>

  <META NAME=Keywords CONTENT=>

  <META NAME=Description CONTENT=>

  </HEAD>

  <BODY>

  <applet code=UseBorderLayoutclass width= height=></applet>

  </BODY>

  </HTML>

  紅色部分替換成相應的布局類


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26137.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.