a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 221|回复: 3

[专业语言] JAVA认证考试专业语言基础知识22

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
AWT中常用的布局管理器有如下几个:FlowLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout,Swing还提供了一个BoxLayout.5 s8 x1 A+ w5 ~1 F: }) h  E
    3 y+ W) `2 o/ N9 q- ~* T8 X
    FlowLayout从左向右排列所有组件,遇到边界就会折回下一行从新开始。它有三个构造器FlowLayout(),FlowLayout(int align)和 FlowLayout(int align, int hgap, int vgap),其中的hgap和vgap代表水平间距和垂直间距,align指的是组件的排列方向(从左向右,从右向左,从中间向两边),我们可以使用FlowLayout的静态常量来设置这个参数:FlowLayout.LEFT,FlowLayout.CENTER,FlowLayout.RIGHT.
# X4 l+ a, Y$ g) q8 J& Q7 D& ^# H* o    ! \7 |& l$ h8 b+ n
    BorderLayout将容器分为EAST,SOUTH,WEST,NORTH,CENTER五个区域,如下图所示:
4 n& C  G$ b3 @) g   
$ k7 e' x) \7 H! j 2 E" P" @$ v0 ^7 Z5 e
    我们在向使用此布局管理器的容器中添加组件时,需要制定添加到的区域,否则就默认添加到中间区域里,而当我们向一个区域添加多个组件时,后放入的组件会覆盖前面的组件。BorderLayout有两个构造器,BorderLayout()和BorderLayout(int hgap,int vgap),hgap和vgap代表的水平间距和垂直间距。我们在指定组件添加到的区域时,可以使用它的静态常量:BorderLayout.EAST, BorderLayout.WEST, BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.CENTER.例如:  R& f: Z% D& K% U6 J6 V% o
   
" g$ w; E# L; b4 i; ~/ a    Frame f = new Frame();
. N6 y; F/ d$ ?$ R% m0 a- ^   
3 y, a; a0 G$ v- }, d    f.setLayout(new BorderLayout(5,5));
# k$ D3 y+ e* d! o   
* G" M! F, W( }& Q0 Y5 U2 J3 h8 _    f.add(new Button("南"),SOUTH);//将一个按钮添加到南的位置
( p  H- ~/ F6 i   
2 s8 [/ U$ f9 z1 T5 u" \) O* n/ H    BorderLayout最多只能放5个组件,但是实际上我们可以先在Panel中添加多个组件,再将Panel添加到BorderLayout布局管理器中,因此我们实际可以放的组件要远远超过5个。
8 G' b( _- \- r/ b5 M    1 a+ f1 f% r- B2 r
    GridLayout将容器分割成大小相同的网格,我们在添加组件时将默认从左到右从上到下,将组件依次添加到每个网格中,而每个组件的大小也就由其所添加到的网格的大小所决定。GridLayout同样也有两个构造器,GridLayout(int rows,int cols)和GridLayout(int rows ,int cols,int hgap,int vgap),使用GridLayout的典型例子就是计算器的窗口:$ l# f' m* T) K" b2 U
   
8 S' V" z" T6 i0 ?3 {3 `7 d8 O% g    import java.awt.*;# z5 T' U! }5 o$ c9 u# M
   
3 D8 f- H2 ~. w5 I7 |9 t; {    public class calculator0 c* {3 D, }/ n5 f
    * W& b& Q2 v: Y( K* K2 x
    {
* b/ g& l- D+ L* D; r    8 R) t2 V4 N  o
    public static void main(String[] args)
: _& x+ X6 l" m: _- h( D   
) C1 A; p% s" Z% C/ s    {+ G/ c3 R0 H. x9 p) H7 o- S; _( W3 C
    $ d' j5 L/ k& \& S/ `- [1 h! x
    Frame f = new Frame("计算器");
+ M( R; z, c+ p  B2 K' N    $ p  }8 M5 l0 g/ j7 v7 m6 h7 R
    Panel p1 = new Panel();
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:44:45 | 显示全部楼层

JAVA认证考试专业语言基础知识22

p1.add(new TextField(30));1 }/ H7 Y3 i* k2 p
    6 D+ c. w$ E7 Q2 c$ z
    f.add(p1,BorderLayout.NORTH);% s& R0 i$ @8 L
    2 Q5 y; T1 u* d! J
    //设置p2采用GridLayout布局管理器
, y" B) a2 O5 D3 A) W& A   
; J- m7 X. n+ Q3 h' S: V0 h  g    Panel p2 = new Panel();
0 W1 b6 d$ \- j8 B7 d    9 ]0 a. [* z) t3 X# k/ N+ f  A
    p2.setLayout(new GridLayout(3,5,4,4));
5 m/ H' \( {* ?6 G1 V6 k   
3 `3 D4 o7 L/ _6 {1 e    String[] name = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/","."};
4 N" s  S2 Y+ H& E( Y   
! u1 N! R! N1 L& A& f$ ^5 L( _* j; R    for(int i=0;i
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:44:46 | 显示全部楼层

JAVA认证考试专业语言基础知识22

例子:
5 c! R" g) W2 i/ m) P5 r2 L   
4 X& T9 C4 b2 r" }/ {' P    import java.awt.*;1 [, S- B3 J2 r4 u0 I
   
' w0 {' b. M* f0 [    import java.awt.event.ActionEvent;- ^9 S  Z* x+ L) \8 q
   
+ D' A  r. j$ s8 U5 i0 x    import java.awt.event.ActionListener;$ _4 R- x3 ?8 \/ K
   
; J: T- `. s: N( q* I* N    public class calculator  {
! r* u( }$ m0 p* ]; N. {' l   
) \2 X; `; P* |, Z3 P. [    Frame f;8 E, j% H0 L: a
    , a. E' f9 U8 @) U7 }, m
    Panel p1;1 L( t- ?1 f4 f2 ^1 ^
   
5 r$ o! c3 d* y& M6 M    Panel p2;% @4 m) y' Q# J) _: v
   
4 Q" M1 J3 E8 m+ _9 g; Q    String[] name = {"1","2","3","4","5"};' C. c! `/ j/ c) ~, y" [
   
; F3 j3 y, h. w" Q    CardLayout c;
1 Z  l4 _% f1 S$ ]9 ~0 h  B   
& H! e0 ]) t$ ?, o/ R- Q    public void init()
! w" N8 i  f$ h# l3 P    ' Y; N( c7 V  ~* Z  E0 d2 c
    {
, i& v( ~7 J7 B3 i+ |+ n# {( l/ h2 E   
1 w1 p$ P7 w. j- w2 p! u/ P* Z    f = new Frame("yz");5 T0 N  l2 |) w9 E0 z
    * e' K, T# J1 N3 X( U) C) v
    p1 = new Panel();
; y4 f: }3 H4 c5 o: D9 W: G    % b$ G2 o' M7 ?. k. U* c& q+ i) y
    p2 = new Panel();; ]( X# ~! `# ?/ y( @
    * e6 F1 W9 x- l' j5 S, R" g
    c = new CardLayout();
% T; G2 ?: [8 Y* l3 ?   
& ]5 J# \: s; x    p1.setLayout(c);- q7 N3 V$ D7 ?4 T% h0 @9 ~
    5 f+ s' m% g4 q& ]
    for(int i=0;i
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:44:47 | 显示全部楼层

JAVA认证考试专业语言基础知识22

c.next(p1);
4 B3 u* p0 K7 c' V9 k. C9 u    9 M: C. N' ~9 s7 U2 C5 z
    }
5 j8 ^& h$ \# |+ J# m    % R7 z" e1 B0 j* _
    });
2 y8 L; w; I2 \9 v/ |+ _* x. F# Q   
  [) ?9 v" {5 q8 M: q    //控制显示第一张的按钮% d6 s2 ]6 }1 ]+ J9 P  J5 J. R
    & V+ Q6 y; b# w6 q* E0 t( ]
    Button first = new Button("第一张");" b, _: M4 o) x9 q7 _% R
   
1 r* u4 \& U, U# H    first.addActionListener(new ActionListener()- h; j5 B4 q: m: l
    ( B# k( `& ^/ K5 E: M
    {( {. r% q$ e5 W, e/ ?* C; X
    2 y, `1 j( }' g) A. ?
    public void actionPerformed(ActionEvent e)# N, ^) _! Y5 r% n% I* O
   
* [; h' F: v0 Z+ h    {
( t: l, Z4 G! N% }! p1 [- ]) G) Y   
/ N. u) v  a5 q8 u8 i    c.first(p1);0 T7 c' q9 @1 K# J7 S. j
    9 C* j7 t% t# l+ r
    }5 m1 {% I# O5 i7 U* Q; l+ H
   
/ a& Y9 Y$ ~7 c( z* H  K    });
! H3 [2 G8 B9 x& \2 z   
3 ?9 i+ B  ?! |2 E$ J' Q& H% @    //控制显示最后一张的按钮
1 T' b$ o* h  ?8 M- \: G( A5 m" F   
( {0 B; {: y9 h" a' ~6 L    Button last = new Button("最后一张");
5 e( P; g( ~- a/ J8 j; \- Z    4 M8 f# T1 g8 [5 N* }$ Y) V; D
    last.addActionListener(new ActionListener()
0 y& k: x# V( E+ v7 _  x+ X9 _. ]2 @   
% L# ]$ W  c* }" r! U$ W" L    {; J6 }0 A' t  W$ w) [+ W4 Q
   
4 d" p0 D0 `! H2 R0 ?$ \7 o    public void actionPerformed(ActionEvent e): G9 c* X4 R# l3 g/ q& E, T0 W% z
   
; r( ^- d# f5 k  J) Z* Y    {
* H, j( S6 T# X  K3 Q( |    . s8 ]( F% m! i! L
    c.last(p1);
0 V5 \* C4 H  {$ o" y   
; c- c' k* D6 I, g    }# D" y' ~  a4 S8 `! q0 @1 x
   
, R1 {% [% p3 E# e    });
% f: a7 P, W* N5 b   
; u) M3 t6 i" h5 s; g3 s    //根据card名显示的按钮$ X! U1 ]* K% y4 G( F
    0 p& T( U' x1 p; C2 x
    Button third = new Button("第三张");
4 U7 b7 B# f3 C8 |   
+ e, I' i/ ]8 M- ?: j    third.addActionListener(new ActionListener(). C4 `# A7 c! m4 ^6 I6 L9 j
    5 Y3 ^3 _; O9 d. j
    {9 Y: e& f9 o1 `( ]. R/ b% @# Q
   
5 Z- E4 u2 I2 E$ E% ~    public void actionPerformed(ActionEvent e)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-28 06:54 , Processed in 0.259232 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表