java

位置:IT落伍者 >> java >> 浏览文章

Java:Applet布局问题


发布日期:2020年11月30日
 
Java:Applet布局问题

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>

红色部分替换成相应的布局类

               

上一篇:JAVA中Session的会话状态

下一篇:Java 基本语法(三)——运算符和类型转换