孙卫琴《Java面向对象编程》配套PPT--java_base7_gui.ppt
《孙卫琴《Java面向对象编程》配套PPT--java_base7_gui.ppt》由会员分享,可在线阅读,更多相关《孙卫琴《Java面向对象编程》配套PPT--java_base7_gui.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10课 用户界面设计参见Java面向对象编程的第17,18章AWT容器容器n容器Container能够用来存放别的组件。n有两种类型的容器:Window和Panel。Frame容器容器nWindow是能独立存在的容器,它有一个子类Frame。nFrame有一个构造方法Frame(String title)n你可以通过add()方法,在Frame中加入其他的组件。nFrame被创建后,它是不可见的.n参见FrameShower.java FrameShower.javapackage gui;import java.awt.*;public class FrameShower public s
2、tatic void main(String args)Frame f=new Frame(hello);f.add(new Button(Press Me);f.setSize(100,100);f.setVisible(true);Panel容器Panel只能存在于其他的容器(Window或其子类)中.n通过Panel的默认构造方法Panel()可以创建一个Panel。n参见MyFrame.javaMyFrame.javapackage gui;import java.awt.*;public class MyFrame extends Frame Panel panel=new Pane
3、l();Button button=new Button(press me);public MyFrame(String title)super(title);panel.add(button);panel.setBackground(Color.yellow);add(panel);setBackground(Color.blue);setSize(500,500);setVisible(true);public static void main(String args)MyFrame f=new MyFrame(hello);布局管理器一.取消布局管理器setLayout(null)二.默
4、认布局管理器Window,Frame和Dialog的默认布局管理器是BorderLayoutPanel和Applet的默认布局管理器是FlowLayout。取消布局管理器public MyFrame(String title)super(title);panel.setLayout(null);panel.setSize(200,200);panel.setLocation(50,50);button.setSize(80,50);button.setLocation(80,80);panel.add(button);panel.setBackground(Color.yellow);setL
5、ayout(null);add(panel);setBackground(Color.blue);setSize(500,500);setVisible(true);yx布局管理器n布局管理器分为5种:n-FlowLayout 流式布局管理器n-BorderLayout边界布局管理器n-GridLayout网格布局管理器n-CardLayout卡片布局管理器n-GridBagLayout网格包布局管理器布局管理器练习运行 MyFlow.java运行 BorderLayoutTester.java运行GridEx.java运行 CardLayoutTester.java运行GridBagEx1.
6、java改变容器中组件的布局,观看显示效果FlowLayoutpublic class MyFlow private Frame f;private Button button1,button2,button3;public static void main(String args)MyFlow mflow=new MyFlow();mflow.go();public void go()f=new Frame(Flow Layout);f.setLayout(new FlowLayout();button1=new Button(Ok);button2=new Button(Open);but
7、ton3=new Button(Close);f.add(button1);f.add(button2);f.add(button3);f.setSize(600,600);f.setVisible(true);BorderLayoutpublic class BorderLayoutTester private Frame f;private Button bn,bs,bw,be,bc;public static void main(String args)BorderLayoutTester guiWindow2=new BorderLayoutTester();guiWindow2.go
8、();public void go()f=new Frame(Border Layout);/f.setLayout(new BorderLayout();bn=new Button(B1);bs=new Button(B2);be=new Button(B3);bw=new Button(B4);bc=new Button(B5);f.add(bn,BorderLayout.NORTH);f.add(bs,BorderLayout.SOUTH);f.add(be,BorderLayout.EAST);f.add(bw,BorderLayout.WEST);f.add(bc,BorderLay
9、out.CENTER);f.add(new Button(hello);f.pack();f.setVisible(true);GridLayoutpublic class GridEx private Frame f;private Button b1,b2,b3,b4,b5,b6;public static void main(String args)GridEx grid=new GridEx();grid.go();public void go()f=new Frame(Grid example);f.setLayout(new GridLayout(3,2);b1=new Butto
10、n(1);b2=new Button(2);b3=new Button(3);b4=new Button(4);b5=new Button(5);b6=new Button(6);f.add(b1);f.add(b2);f.add(b3);f.add(b4);f.add(b5);f.add(b6);f.setSize(500,500);f.setVisible(true);CardLayoutpublic class CardLayoutTester public static void main(String args)Panel p1,p2,p3;Frame f=new Frame(Car
11、d Test);CardLayout myCard=new CardLayout();f.setLayout(myCard);p1=new Panel();p2=new Panel();p3=new Panel();f.setBackground(Color.white);p1.setBackground(Color.black);p2.setBackground(Color.blue);p3.setBackground(Color.red);f.add(p1,First);f.add(p2,Second);f.add(p3,Third);myCard.show(f,Second);f.set
12、Size(200,200);f.setVisible(true);创建面板及复杂布局创建面板及复杂布局 参见 ExGui3.java创建面板及复杂布局创建面板及复杂布局 参见ExGui4.java事件处理n每一个可以触发事件的组件被当作事件源.n每一种事件都对应专门的监听者。n监听者用来接收和处理这种事件。n一个事件源可以触发多种事件,如果它注册了某种事件对应的监听者,那么这种事件就会被接收和处理。这种模式被称为 委托模型。事件处理的软件实现n事件类(XXXEvent)n事件监听接口(XXXListener)n组件的注册监听接口方法(addXXXListener()方法)事件处理1.用内部类实
13、现监听接口参看EventTester1.java2.将容器类实现监听接口参看EventTester2.java3.定义专门的外部类实现监听接口参看EventTester3.java4.采用事件适配器参看EventTester4.java5.一个组件注册多个监听者参看EventTester5.java用内部类实现监听接口public class EventTester1 extends Frame static int count=1;public EventTester1(String title)super(title);public static void main(String args
14、)EventTester1 f=new EventTester1(hello);f.setLayout(new FlowLayout();final Button b=new Button(1);b.addActionListener(new ActionListener()/declare an Inner class public void actionPerformed(ActionEvent evt)b.setLabel(new Integer(+count).toString(););f.add(b);f.setSize(100,100);f.setBackground(Color.
15、blue);f.setVisible(true);将容器类实现监听接口public class EventTester2 extends Frame implements ActionListener int count=1;Button b;public EventTester2(String title)super(title);setLayout(new FlowLayout();b=new Button(1);b.addActionListener(this);/Sample itself is an ActionListener add(b);setSize(100,100);set
16、Background(Color.blue);setVisible(true);public static void main(String args)EventTester2 f=new EventTester2(hello);public void actionPerformed(ActionEvent evt)b.setLabel(new Integer(+count).toString();定义专门的外部类实现监听接口public class EventTester3 extends Frame Button b;Button b1;public EventTester3(String
17、 title)super(title);setLayout(new FlowLayout();b=new Button(1);b.addActionListener(new MyListener(1);add(b);b1=new Button(not registred);add(b1);setSize(100,100);setBackground(Color.blue);setVisible(true);public static void main(String args)EventTester3 f=new EventTester3(hello);class MyListener imp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java面向对象编程 孙卫琴 Java 面向 对象 编程 配套 PPT java_base7_gui
限制150内