资源描述:
《java高级组件gui设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章高级组件GUI设计第11章高级组件GUI设计11.1界面布局管理11.2键盘事件(KeyEvent)11.3鼠标事件(MouseEvent)11.4窗口与面板11.5菜单设计11.6对话框设计11.1界面布局管理布局管理是对容器上组件的位置进行布置5种布局管理FlowLayoutBorderLayoutCardLayoutGridLayoutBoxLayout其它:DefaultMenuLayout,GridBagLayout,GroupLayout...11.1.1FlowLayoutjava.awt.FlowLayout类是java.lang.O
2、bject类的直接子类。FlowLayout的布局策略是将容器中的组件按照加入的先后顺序从左向右排列,当一行排满之后就转到下一行继续从左至右排列,每一行中的组件都居中排列。FlowLayout是Applet缺省使用的布局编辑策略。FlowLayout的构造方法FlowLayout()FlowLayout(intalign)FlowLayout(intalign,inthgap,intvgap)align的值:FlowLayout.LEFT、FlowLayout.RIGHT、FlowLayout.CENTER、FlowLayout.LEADING或FlowLa
3、yout.TRAILING11.1.2BorderLayoutBorderLayout布局策略是把容器内的空间划分为东、西、南、北和中五个区域。这五个区域分别用字符串常量EAST、WEST、SOUTH、NORTH和CENTER表示。BorderLayout类有两个构造方法BorderLayout( )BorderLayout(inthgap,intvgap)publicclassc11_1extendsJAppletimplementsActionListener{JButtonbt1=newJButton("北部"),bt2=newJButton("西部"
4、),bt3=newJButton("东部"),bt4=newJButton("南部");JLabellb1=newJLabel("中部");Containercp=getContentPane();publicvoidinit(){cp.setLayout(newBorderLayout(10,10));cp.add("North",bt1);//将bt1放置北部bt1.addActionListener(this);cp.add("West",bt2);//obsoletebt2.addActionListener(this);cp.add("East",
5、bt3);//将bt3放置东部bt3.addActionListener(this);【示例程序c11_1.java】cp.add("South",bt4);//将bt4放置南部bt4.addActionListener(this);cp.add("Center",lb1);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==bt1)lb1.setText("按钮1");elseif(e.getSource()==bt2)lb1.setText("按钮2");elseif(e.getSourc
6、e()==bt3)lb1.setText("按钮3");elselb1.setText("按钮4");}}【示例程序c11_1.java】11.1.3CardLayoutCardLayout的版面布局方式是将每个组件看成一张卡片,如同扑克牌一样将组件堆叠起来,而显示在屏幕上的每次只能是最上面的一个组件,这个被显示的组件将占据所有的容器空间。构造方法CardLayout( )CardLayout(inthgap,intvgap)表11.1CardLayout类的常用成员方法publicclassc11_2extendsJAppletimplementsActi
7、onListener{JButtonbt1=newJButton("按钮A");JButtonbt2=newJButton("按钮B");JButtonbt3=newJButton("按钮C");Containercp=getContentPane();CardLayoutcard=newCardLayout(20,20);publicvoidinit(){cp.setLayout(card);cp.add("a",bt1);cp.add("b",bt2);cp.add("c",bt3);card.next(cp);//显示按钮Bbt1.addActionL
8、istener(this);bt2.addActio