java applet布局

applet布局:
  布局容器管理器(LayoutManager):它用于协助容器确定加入的组件(按钮等)应该放置的位置
  awt提供了4中常用的布局容器管理器
  >>FlowLayout
  >>BorderLayout
  >>GridLayout
  >>CardLayout
  applet默认使用FlowLayout,applet使用容器管理器的方法如下:
  setLayout (new BorderLayout)
  setLayout()方法是applet类继承Container类中的方法而来,因此在applet程序中可以直接调用
  applet加入按钮一定需要上面的容器管理器么?
  不一定,可以先 setLayout(null); 然后自己确定组件放置的细节,代码麻烦。
  如果你不用布局管理器(Jframe中的用法):
  JButton b1 = new JButton("hello");
  getContentPane().add(b1);
  b1.setLocation(100,10);
  以下是容器管理器常用的4种布局写法

  1.applet 使用 FlowLayout 布局:
  指定布局:setLayout(new FlowLayout())
  加入组件:add(组件实例)
  作用:由左到右,由上到下依次放置组件
  加入组件使用applet类继承Container类中的方法成员add();
 
  import java.awt.*;
  import java.applet.*;
  public class UseFlowLayout extends Applet{
  public void init()
  {
  setLayout(new FlowLayout()); //因为是默认管理器,可以省略
  //setLayout()方法是applet类继承Container类中的方法而来,因此在applet程序中可以直接调用
  for(int i = 0; i<5;i++){
  add(new Button("按钮" + i )); //加入5个按钮
  //applet类继承Container类中的方法成员add();
  }
  }
  }

  2.applet使用BorderLayout();
  指定布局:setLayout(new BorderLayout());
  加入组件:add(组件实例,位置常量)
  作用:此种布局将容器划分为5个区域,分别是上、下、左、右、中
  [位置常量]指定了组件将要放置的位置,
  如果组件不足5个,放在中间位置的组件将自动填充空余位置

  import java.awt.*;
  import java.applet.*;
  public class UseBorderLayout extends Applet{ //接口Applet
  public void init()
  {
  setLayout(new BorderLayout()); //因为是默认管理器,可以省略
  add(new Button("按钮上"),BorderLayout.NORTH);
  add(new Button("按钮右"),BorderLayout.EAST);
  //?setHgap(50);想设置组件的水平和垂直的边距,看下面的GridLayout使用方法
  add(new Button("按钮中"),BorderLayout.CENTER);
  //add(new Button("按钮下"),BorderLayout.SOUTH) //引上是为了测试自动填充效果
  //add(new Button("按钮左"),BorderLayout.WEST) //引上是为了测试自动填充效果
  }
  }

  3.applet使用GridLayout();
  指定布局:setLayout(new GridLayout(列数,行数))
  加入组件:add(组件实例)
  作用:左-->右,上-->下,分成指定的网格

  import java.awt.*;
  import java.applet.*;
  public class UseGridLayout extends Applet{ //接口Applet
  public void init()
  {
  //setLayout(new GridLayout(3,4)); //书上的写法,我的写法如下:
  //声明一个布局管理器:为表格形式 3行 4列
  GridLayout GL = new GridLayout(3,4);
  GL.setHgap(20); //设置组件的水平和垂直的边距
  GL.setVgap(20);
  this.setLayout(GL); //是哪个类对象的方法?!是this:当前applet
  //加入按钮
  for(int i=0;i<12;i++)
  {
  this.add(new Button("按钮" + i)) ;
  //add方法是哪个类对象的?!也是当前面板的方法
  }
  }
  }
 
  4.applet使用 CardLayout容器管理器
  指定容器管理器:setLayout(new CardLayout())
  加入组件:add(组件实例,"指定组件名称")
  显示组件:CL.show(this."button1"),next,previous,first
  作用:组件加入容器applet中,然后按照需要调出,被调出的组件遮盖本容器内的所有组件
  。。。注意,applet是容器,但不是唯一的,applet还可以加入多个容器!详细内容明天再学
 
  import java.awt.*;
  import java.applet.*;
  public class UseCardLayout extends Applet{ //接口Applet
  public void init()
  {
  //指定当前applet布局管理器为CardLayout.
  CardLayout CL = new CardLayout();
  setLayout(CL);
  //加入按钮
  for(int i=0;i<12;i++)
  {
  add(new Button("按钮" + i),"button" + i) ;
  }
  CL.show(this,"button11"); //将指定按钮显示出来
  CL.next(this); //转到下一个按钮,这里说明循环显示的效果,显示出是button0;
  //还有CL.first(this)等方法==如:last,previous,next,first,显示指定的就用上面的方法
  }
  }
  以上是applet作为容器,需要用到的最常用的组件布局办法
  实际上一个容器还可以使用多个LayoutManager,
  用Panel!
  Panel属于awt组件的容器类,也就是说它可以用来放置其他的awt组件,
  她的重要特点就是:拥有独立的坐标系统和layoutmanager.
  Panel 与 LayoutManager结合可以做出更符合需要的applet界面!
  ---附applet测试页面
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 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="UseBorderLayout.class" width=400 height=300></applet>
  </BODY>
  </HTML>
  红色部分替换成相应的布局类
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值