09 GUI
来源:互联网 发布:淘宝定时上架什么意思 编辑:程序博客网 时间:2024/05/18 16:54
09.01_GUI(如何创建一个窗口并显示)
- Graphical User Interface(图形用户接口)。 Frame f = new Frame(“my window”); f.setLayout(new FlowLayout()); //设置布局管理器 f.setSize(500,400); //设置窗体大小 f.setLocation(300,200); //设置窗体出现在屏幕的位置 f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png")); f.setVisible(true);
09.02_GUI(布局管理器)
- FlowLayout(流式布局管理器)
- 从左到右的顺序排列。
- Panel默认的布局管理器。
- BorderLayout(边界布局管理器)
- 东,南,西,北,中
- Frame默认的布局管理器。
- GridLayout(网格布局管理器)
- 规则的矩阵
- CardLayout(卡片布局管理器)
- 选项卡
- GridBagLayout(网格包布局管理器)
- 非规则的矩阵
09.03_GUI(窗体监听)
Frame f = new Frame("我的窗体"); //事件源是窗体,把监听器注册到事件源上 //事件对象传递给监听器Button b1 = new Button("按钮一"); Button b2 = new Button("按钮二");f.add(b1); //添加按钮f.add(b2);f.setLayout(new FlowLayout()); //设置布局管理器f.addWindowListener(new WindowAdapter() { //WindowListener是接口,WindowAdapter是抽象类,重写了它的所有方法.接口中的方法都要重写,抽象 @override //继承抽象类可以用那个类就重写那个类. public void windowClosing(WindowEvent e) { //退出虚拟机,关闭窗口 System.exit(0); }});
09.04_GUI(鼠标监听)
b1.addMouseListener(new MouseAdapter() { /*@Override public void mouseClicked(MouseEvent e) { //单击 有可能不灵, System.exit(0); }*/ @Override public void mouseReleased(MouseEvent e) { //释放 System.exit(0); } });
09.05_GUI(键盘监听和键盘事件)
b1.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { //System.out.println(e.getKeyCode()); //if(e.getKeyCode() == 32) { if(e.getKeyCode() == KeyEvent.VK_SPACE){ System.exit(0); } } });
09.06_GUI(动作监听)
- 没有适配器,只有一个方法
- 空格和单机左键都是一样的 b2.addActionListener(new ActionListener() { //添加动作监听,应用场景如:暂停视频和播放视频 @Override public void actionPerformed(ActionEvent e) { System.exit(0); } });
09.07_设计模式(适配器设计模式)(掌握) //鲁智深和唐僧的例子
- a.什么是适配器
- 在使用监听器的时候, 需要定义一个类事件监听器接口.
- 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
- 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
- b.适配器原理
- 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
- 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
- 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了. interface 和尚 { public void 打坐(); public void 念经(); public void 撞钟(); public void 习武(); } abstract class 天罡星 implements 和尚 { //声明成抽象的原因是,不想让其他类创建本类对象,因为创建也没有意义,方法都是空的 @Override public void 打坐() { } @Override public void 念经() { } @Override public void 撞钟() { } @Override public void 习武() { } } class 鲁智深 extends 天罡星 { public void 习武() { System.out.println("倒拔垂杨柳"); System.out.println("拳打镇关西"); System.out.println("大闹野猪林"); System.out.println("......"); } }
09.10_GUI(需要知道的)
- 事件处理
- 事件: 用户的一个操作
- 事件源: 被操作的组件
- 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
0 0
- 09 GUI
- 25-GUI-09-GUI(菜单)
- Python GUI 09----Spinbox
- GUI
- GUI
- GUI+
- GUI
- GUI
- GUI
- gui
- gui
- GUI
- GUI
- GUI
- GUI
- GUI
- GUI
- GUI
- Fragment生命周期
- 关于安卓clean项目后没有R文件的解决
- 修饰符和static用法
- 如何解决Android设备上touchend不能触发bug
- js解析GET参数解析一次性解决
- 09 GUI
- Android自定义View控件
- (4)Jfreechart之IntervalBarChart(显示差值的图表)
- 【论文笔记】Leveraging Datasets with Varying Annotations for Face Alignment via Deep Regression Network
- linux shell中的变量
- CDUESTC 2016 假期赛1 D题
- GCD总结0
- jquery,獲取父級對象索引失敗,未理解,另附別樣解決方案
- 腾讯QQ第三方登录1:申请接入(OAuth2.0协议)