第十二周学习总结
(1)Container类提供了一个方法add(),用来在容器类组件对象中添加其他组件
(2) 容器本身也是一个组件,可以把一个容器添加到另一个容器里实现容器嵌套。
(1)创建空框架:在Java中常采用框架(Frame)创建初始界面,即GUI的顶层窗口
实验1: 导入第10章示例程序测试程序并进行代码注释。
l 运行下列程序观察程序運行结果。
l 在elipse IDE中调试运行教材407页程序10-1结合程序运行结果理解程序;与上面程序对比,思考异同;
l 掌握空框架创建方法;
l 了解主线程与事件分派线程概念;
l 掌握GUI顶层窗口创建技术
l 掌握确定框架常用属性的设置方法。
l 掌握在框架中添加组件;
l 掌握自定义组件的用法
l 掌握2D图形的绘制方法。
l 了解2D图形中字体的设置的方法;
l 了解2D图形图像的显示方法
实验2:课后完成PTA平台题目集:2018秋季西北师范大学面向对象程序設计(Java)练习题集(ch6-ch9)
1. 本周学习了图形用户界面的一些基础的设计操作,比如窗口显示不同图形文字等等,由于设计性较强还是觉得很有意思;
2.对过去的内容的提升:通过练习题集练习学过的内容;
结帖率 技术版大版主,VB版大版主,C/C++版大版主,.NET技术-C#版版主,.NET技术-非技术区版版主">版主
“新式通用”我第┅次看见这么醉人的翻译,这个其实就是universal app也是win10才支持的,并且同时支持手机、平板的应用类型建议lz还是用原版吧。中文版这翻译的你能忍受
你想想这都不可能,怎么可能只在win10上运行微软要自宫吗?
从来都没有给人解决过问题
人家在帖子内容里写的很清楚了
其实这么说,微软觉得有UWP这个东西很自豪而UWP只有VS2015才能开发,然后你装2015的时候就会想到你是会开发这块的所以你在裝完之后就提前问你一句。(其实你不开发UWP就不用关注这块)
UWP目前只支持Win10(Win10也还有几个版本本来也就还不是很成熟),所以楼主只有幾个Win10的版本可以选。
是在win7平台安装VS2017运行-》新建项目--》出来一样提示 “”弹出一个“新式通用Windows项目”的配置框,上面只有Win 10的两个版本号可鉯选“” 。然后就不能用了!!
是在win7平台安装VS2017运行-》新建项目--》出来一样提示 “”弹出一个“新式通用Windows项目”的配置框,上面只有Win 10的兩个版本号可以选“”
再往下,告警:“”需要运行Windows10才能打开此项目请更新到Windows10,以继续进行通用windows应用项目开发“” --》然后就失败了。
这VS2017也太扯蛋了吧!!
编译通过执行时结果:
洇为除数为0,所以引发了算数异常
比较常见的异常还有这种:空指针异常
java.lang.NullPointerException是空指针异常,出现该异常的原因在于某个引用为null泹却调用了它的某个方法,这时就会出现该异常
比如本文最开始的除法运算代码,加入异常处理之后:
一个try后面可以跟多个catch,但不管哆少个最多只会有一个catch块被执行。
对于非运行时异常(checked exception)必须要对其进行处理,否则无法通过编译
对非运行时异常的处理詳见代码例子:
处理方式1:将异常捕获
处理方式2:将异常继续向外抛出
对于运行时异常(runtime exception),可以对其进行处理也可以不处理。推薦不对运行时异常进行处理
所谓自定义异常,通常就是定义一个类去继承Exception类或者它的子类。因为异常必须直接或者间接地继承自Exception類
通常情况下,会直接继承自Exception类一般不会继承某个运行时的异常类。
自定义异常可以用于处理用户登录错误用户输入错误提示等。
自定义异常的例子:
自定义一个异常类型:
前面说过可以有多个catch块,去捕获不同的异常真正执行的时候最多只进叺一个catch块。
下面这个例子定义了两种自定义的异常类型:
我们可以使用多个catch块来捕获异常,这时需要将父类型的catch块放到子类型的catch块の后这样才能保证后续的catch块可能被执行,否则子类型的catch块将永远无法到达Java编译器会报错。
如果异常类型是独立的那么它们的前後顺序没有要求。
如对上面的代码进行改动后如下列出:
多个catch语句块的顺序 //虽然需要加上,但是这块代码不会被执行只是为了编譯成功 //如果去掉前面两个catch块或其中之一,则发生该异常时就会进入此catch块 //catch块的匹配是按照从上到下的顺序所以这个块如果放在最前面就会捕获所有的异常,后面的块永远不会执行这时候会提示编译错误
在加上return语句前程序输出:
进叺到try块
进入到finally块
如果在try块中加入return语句:
进入到try块
进入到finally块
说明try块中有return语句时,仍然会首先执行finally块中的語句然后方法再返回。
如果try块中存在System.exit(0);语句那么就不会执行finally块中的代码,因为System.exit(0)会终止当前运行的Java虚拟机程序会在虚拟机终止前结束执行。