java第12天学习内容回顾——java白皮书第7章

  1. AWT:抽象窗口工具箱,AWT+IFC==SWING,Swing是基于AWT架构之上的提供组件,但处理事件依然用AWT
  2. Swing用于 被绘制的用户界面类,javaFX可能会替代它,AWT 用于底层机制。
  3. 用户可以指定“观感”,此外Metal是专属于java的“观感”
  4. Swing库中,JFrame类用于描述顶层窗体,它是极少数不需要绘制在“画布”上的SWing组件之一,所以它的“修饰部件”是由用户的窗口系统绘制,而不是Swing绘制。
  5. 开启运行窗口部分的代码格式:Event.Queue.invokelater(A);----A == new Runnable(){B}----         B == public void run(){C} ----C是容器内部代码描述
  6. .setUndecorated(true) 方法用于关闭所有的框架装饰
  7. .setVisible(true) 方法用于显示控件
  8. .setLocation、.setBounds 方法用于设置框架的位置,此处使用到的坐标是相对于实体屏幕的。
  9. .setIconImage 方法用于设置窗体的图标
  10. .setTitle 方法用于设置窗体的标题
  11. .setResizable方法用于设置框架大小是否允许改变。
  12. object ---- component ----container ----- windows-------Frame------JFrame继承关系
  13. .setLocationByPlatform(true),新窗体位置与最近显示窗体有一些错位
  14. “获取、设置” 方法对 被称为一种属性,属性包含属性名和类型,属性名是set/get后第一个字母改为小写得到属性名,getTitle----title是属性名。类型与get...()的方绘制相同,此外有一个例外:对于类型为boolean的属性,获取属性的方法名开头是is...而不是get...
  15. 确定合适的框架大小:Toolkit对象,此对象使用Toolkit.getDefaultToolkit方法构建得到,Toolkit类中包含了很多与本地窗口系统打交道的方法,Toolkit对象有一个方法:getScrenSize,返回一个Dimension对象,这个对象有两个公有的数据域,width,height,用来放置本地屏幕大小。
  16. 关于图标的设置:使用new ImageIcon(图片文件名).getImage()方法将图片文件加载进一个Image对象实例中,使用setIconImage(Image对象实例) 方法设置图标,
  17. 将框架设置为最大:JFrame类实例.setExtendedstate(Frame.MAXIMIZED_BOTH);参数还可以有其他选择:.NORMAL,.ICONIFIED,.MAXIMIZED_VERT,.MAXIMIZED_HORIZ
  18. 使用多个显示屏幕的应用程序,使用GraphicsEnvironment和GraphicsDevice类
  19. 内容窗格,绘制组件需要定义一个JComponent的扩展类,并且在此类中将paintComponent方法覆盖掉,注意是覆盖掉,paintComponent方法有一个Graphics类型的参数,利用它来绘制图案,图像和文本。
  20. painComponent方法是不需要人工调用的,它将自动调用
  21. repaint方法用于强制刷新屏幕
  22. 在Graphics类中有一个drawString方法,.drawString(string,x,y)具体绘制字符串
  23. container类中存在add(component)方法,利用这个方法通过组件名,将组件加入到框架中
  24. java2d库,paintComponent中的参数Graphics,只要将这个参数强制转化为Graphics2D类型并传给此类型的变量引用,要绘制图形,首先要创建一个实现了Shape接口的类的对象(Graphics2D实现了shape接口),然后使用此对象的.draw方法绘制
  25. java2D采用浮点型像素坐标,很多计算是float型,不过应为编译器默认小数位double型,所以需要将小数常量后加F,作为单精度使用,有事还需要强制转化为float型,这样比较麻烦,因此每一个图形类提供了两个版本,参数为float型(省空间)的和参数为double型(方便)的。详述与P272
  26. 作者建议,尽可能使用Point2D来表示点,而不是x,y,这样方便理解。详述与P272
  27. 关于直线,椭圆的绘制详述与P274
  28. 填充颜色过程:a.选择颜色(g2.setPait(color))----b.绘制图(g2.drawString)    g2.fill(图形) 填充图形颜色,.fill 填充后可以不使用.draw画出,a和b的过程可以反复进行绘制多种颜色,详述与P278
  29. 对于字体的描绘,详述与P281,通过Font类对象设置字体信息,new Font("字体名",Font.字体格式,字体大小)
  30. Font.deriveFont(a),a如果是float型,相当于改变字体大小,a如果是Int型改变字体风格。
  31. 绘制图像,先得到image类的对象实例用于存储图片,然后使用g2.drawImage(image对象实例,x,y,null)来绘制图片到指定区域,利用g2.copyArea(a,b,c,d,x,y)利用前四个参数锁定需要复制的区域,复制到后两个参数锁定的位置。
时间: 2024-10-24 16:51:59

java第12天学习内容回顾——java白皮书第7章的相关文章

java第12天学习内容回顾——java白皮书第9章

Swing 用户界面组件 一种模式:模型----视图-----控制器 模式有很多种,例如:模型----视图----控制器(原则为限制一个对象拥有的功能数量):组合模型--容器和组件之间:装饰器模式----带滚动条的面板:策略模式-----布局管理器 内容---外观----行为----MVC 模型与视图之间关系 1:n 模型独立于观感,所以,有重用的可能 模型可能相同,但视同和控制器可能不同 metal观感中,JButton 继承了JComponent的包装器类,后者包含了DefaultButto

java第13天学习内容回顾——java白皮书第8章

java事件处理机制 事件的相关信息被封装在一个事件对象中(一个参数),事件源将这个时间对象分发到它的所有监视器中,并有监视器对事件作出反应. AWT时间处理机制 监听器对象构造出一个实例,这个实例实现了监听器接口 事件源是一个对象实例,这个实例可以注册(添加)监听器,并发送事件(事件发送到监听器) 事件发生时,事件源将发送到所有被添加进事件源的监视器 监视器利用被发送过来的事件信息决定如何相应 3.一个事件源可以对应多个监视器,监听器接口ActionListener接口,这个接口中只包含一个方

java第三天学习内容回顾——java白皮书第四章

java面向对象程序设计中使用到名词理解:对象标识==一个实例的变量名.对象行为==一个类的方法.对象状态==类中的数据域(严格讲是可以发生变化的数据域): 类之间的关系:use_a,has_a,is_a三种 java中的Math类有些特殊,它只封装了功能而并不涉及数据域,所以不需要也不必隐藏数据 java中的对象变量名更像是个指针(像),声明一个对象实例后必须用new构造对象然后用=将两者链接起来,也可以用=将两个不同的对象变量连接起来,但此时需要注意,就像指针赋值一样,两个变量自此将共享同一

java第四天学习内容回顾——java白皮书第四章

java中有自动的垃圾回收器,不需要人工回收内存或者资源,所以java不支持析构函数. finalize方法可以添加进任何一个类,可以用来在回收短缺的资源,但作者并不提倡使用这个方法,因为程序员无法确定这个方法将在哪一时刻被调用,只知道它将在垃圾回收器前调用. System.runFinalizersOnExits 这个方法能够确保finalizer方法在java关闭前调用,但作者认为这样并不安全,有一个替代的方法:Runtime.addShutdownHook方法,具体在白皮书后面介绍. ja

java第二天学习内容回顾——java白皮书第三章

对于由控制台进行输入时,需要利用到Scanner控件进行辅助,可以利用它进行整行或者单字节的读取,此外需要注意,如果是密码方面的输入问题,需要利用的Console空间,其限制每次只能固定读取一整行. java需要包含某些包时,利用import保留字,不同于Include java关于格式化输出问题的详述于白皮书P57 String.format方法的使用与作用类似于print,但不同处在于前者只是创建了一个格式化的字符串,而后者则是打印出格式化的字符串. 对于当前时间的多种打印形式详述与白皮书P

java第一天学习内容回顾——java白皮书第三章

java虚拟机可以使用即时编译和字节码(为达到独立于平台的特性)两种,对使用频繁的字节码序列将编译成机器码实现即时编译. java中基本类型的字节数是固定的(为方便移植),与C/C++不同(它们只确定了相对大小关系),java中byte(1) short(2) int(4) long(8) float(4) double(8). java分为标准版.微型版(嵌入式).企业版(后端) HTML是描述网页结构的方式,java是程序设计语言,其内容提供的applet可以嵌入网页中. XML是描述数据结

java第五至七天学习内容回顾——java白皮书第五章

java学习过程出现第一次滞后,背景:清明节以及持续1周的雨. 方法签名=方法名+参数列表. 在覆盖方法时需要注意:1.覆盖后的方法返回类型的兼容性:2.新的方法的可见性必须不低于原方法的可见性. 这里有一个因果:每次调用方法都要进行搜索开销很大,所以 虚拟机 会预先为 每一个类 建立方法表,使用时直接查表,此外,除了private,static,final方法,所有的方法都是动态链接. 调用 某个方法 的实际解析过程 详述于白皮书P160: final 修饰的类将不允许出现继承,此类中所有的方

7月12日学习内容

理清几个术语! 1.JAVA虚拟机 http://shenyuc629.iteye.com/blog/1698770 JAVA程序为了能一次编译之后再不同的平台上运行,就是因为在运行程序之前,把这台机器想象成了属于自己的那台熟悉的机器,即为虚拟机. JAVA程序先在虚拟机上运行,再将程序翻译为机器指令在具体的机器上运行. 一个JAVA程序对应一个虚拟机,3个JAVA程序就有三个虚拟机. 那为什么不多个JAVA程序共用一个虚拟机呢?我也不知道 http://blog.csdn.net/bingdu

今日学习内容回顾 一、基本数据类型 二、字符串型及内置方法 三、列表型及内置方法

一.基本数据类型int类型.float类型1.用途:int:记录年龄.电话号码.QQ号码 float:薪资.身高等 2.定义方式:int(object) float(object)#int(object) int返回的结果只能是数据整型,当你将int(float型)时,返回的是该float 对象的取整部分,其他的识别不了,当你将一个不全是数字的字符串强制转化为int整型 时,系统会出现报错.这里int(object)中的对象可以是一个,也可以多个,以逗号分开如:int(x,y)进制间转换形式:i