Java4.1 GUI & Exception

一、GUI(Graphics User Interface),图形用户界面

1.GUI介绍

        1.定义:通过文字、图像、窗口小工具和计算机交互的方法

        2.组成:将component装入container,安排event的响应

container 容器component 组件event
一个可以容纳其他组件的组件

用户可以在屏幕上看到并也可以与之交互的对象

当用户利用鼠标/键盘操作,产生event(事件)
frame:框架button
pane:被框住的平面

panel:比pane更小的平面

        3.核心技术: awt & swing

Java.awtjavax.swing

Frame:窗口总class

JFrame:窗口总class

Button:按钮class

JButton:按钮class

   


        4.具体步骤

                1) 引入相关包

//第一种,整包引入
import java.awt.*;
import javax.swing.*;
//第二种,只引入对应的frame
import java.awt.Frame;
import javax.swing.JFrame;

                2) 声明frame

//第一种,常用swing,此处也以此为例
//常规建立class、method
JFeame myFrame= new JFrame();
//第二种,同样用swing
public class Test extends JFrame{
    public Test(){
        //code
    }
    public static void main(String[] args){
        Test myFrame=new Test();
    }
}

                3)创建widget

JButton myButton=new JButton("txt");

                4)把widget加到frame里的pane上

//JFrame类中自带getContentPane().add(name of widget),不需要再创建pane

//第一种
myFrame.getContentPane().add(myButton);
//第二种
public Test(){
    getContentPane().add(myButton);
}

                5)显示出来

//其他设置
MyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击“x”后的应对方案
MyFrame.setTitle("txt");//设置窗口名称
MyFrame.setSize(250,100);//设置窗口大小
MyFrame.setVisible(true);//启动窗口
//若是第二种,且这些函数放在了constructor里,就用this.set……

               6)实例

                第一种

                第二种


        5.相关知识

                1)setDefaultCloseOperation(int operation)的operation选项

                 2)第二种继承法被调用时,constructor一定要用子类的

Test myFrame=new Test();//OK
JFrame myFrame=new Test();//OK
JFrame myFrame=new JFrame();//NONONONONON

2.监听事件

        1.本质:关注event是否被触发

        2.组成:source + action =event

        3.获取event步骤:从source处传到user code中对应事件的应对接口

                1)实现接口

                2)向button注册

                

                3)定义事件处理方法

                4)完整代码


3.Layout布局管理器

        1.在 java.awt中定义的,但可以用于swing的component

        2.注意:在component加到container前,必须已经创建container的layout manager

        3.分类:

                1) FlowLayout布局组件

                        像水流一样,顺序为从左至右,从上至下

                        Jpanel(swing中的类)的默认布局

                        调整screen的size,widgets的位置会随之变化

   

                 2)GridLayout布局组件

                        将容器分割成纵横线分隔的网格 , 每个网格所占的区域大小相同,每个网格内的组件将自动充满整个网格

                        添加组件时, 默认从左向右、 从上向下依次添加到每个网格中

                        如果指定了行数,则列数将是分量数除以行数。 如果指定了列数,则行数将是组件数除以列数

 

                 3)BorderLayout布局组件

                        将容器分为五个区域:North, South, East, West, and Center 


二、Exception

 1.抛出、抓住

        1.抛出:对于有问题应抛出的情况进行判断的method

                方法用throws Exception声明

                抛出用throw,throw new Exception(要打印的字符串)

                如果只抛出,不解决,那么本应写catch的method也要加上throws Exception

        2.抓住:调用该问题代码时——尝试抓住exception,若失败就声明结果

                try{code}//顺序执行code,如出现异常跳出,执行catch,常在这里进行调用

                catch{code}//如果出现exception,就运行这里的code;否则,直接略过

                finally{code}//不管有没有异常,都要执行这里;就算try/catch中有return指令,也要先做完finally

  • 多个异常E1,E2……,那么catch要分情况讨论且在括号注明(异常名称 异常的变量名:一般是异常首字母小写+ex)
  • 执行顺序问题:没有抓住,catch不执行,finally里执行,在此之后的不执行

2.自定义Exception

用户调用method,想写自己的exception class,可以创造一个class但必须extends Exception

3.实例

  • 异常:不应出现在阳历上的违规日期

  • Part1:exception的个性化

  • Part2:出现异常的情况及异常的抛出

  • Part3:只抛出不解决

  • output会给出exception出现的行

  • Part4:抛出并抓住


4.Stack Trace Messages

  1. Exception in thread “main” exception名称(如有所属package也写上,java.lang.ArithmeticException):
  2. at 文件名.正在执行的函数名(文件名.java:所在行)
  3. at 文件名.main(文件名.java:调用函数时的行)
  4. 实例

5.Assert 断言 

        1.本质:实时跟踪有无异常并及时停止运行的警察

        2.实例

                没有异常,就像没有这个语句一样,不会影响任何code

                出现异常,就会打印detailMessage,并停止运行

        3.cmd指令:java -ea 文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值