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

  • AWT:抽象窗口工具箱,AWT+IFC==SWING,Swing是基于AWT架构之上的提供组件,但处理事件依然用AWT

  • Swing用于 被绘制的用户界面类,javaFX可能会替代它,AWT 用于底层机制。

  • 用户可以指定“观感”,此外Metal是专属于java的“观感”

  • Swing库中,JFrame类用于描述顶层窗体,它是极少数不需要绘制在“画布”上的SWing组件之一,所以它的“修饰部件”是由用户的窗口系统绘制,而不是Swing绘制。

  • 开启运行窗口部分的代码格式:Event.Queue.invokelater(A);----A == new Runnable(){B}----         B == public void run(){C} ----C是容器内部代码描述

  • .setUndecorated(true) 方法用于关闭所有的框架装饰

  • .setVisible(true) 方法用于显示控件

  • .setLocation、.setBounds 方法用于设置框架的位置,此处使用到的座标是相对于实体屏幕的。

  • .setIconImage 方法用于设置窗体的图标

  • .setTitle 方法用于设置窗体的标题

  • .setResizable方法用于设置框架大小是否允许改变。

  • object ---- component ----container ----- windows-------Frame------JFrame继承关系

  • .setLocationByPlatform(true),新窗体位置与最近显示窗体有一些错位

  • “获取、设置” 方法对 被称为一种属性,属性包含属性名和类型,属性名是set/get后第一个字母改为小写得到属性名,getTitle----title是属性名。类型与get...()的方绘制相同,此外有一个例外:对于类型为boolean的属性,获取属性的方法名开头是is...而不是get...

  • 确定合适的框架大小:Toolkit对象,此对象使用Toolkit.getDefaultToolkit方法构建得到,Toolkit类中包含了很多与本地窗口系统打交道的方法,Toolkit对象有一个方法:getScrenSize,返回一个Dimension对象,这个对象有两个公有的数据域,width,height,用来放置本地屏幕大小。

  • 关于图标的设置:使用new ImageIcon(图片文件名).getImage()方法将图片文件加载进一个Image对象实例中,使用setIconImage(Image对象实例) 方法设置图标,

  • 将框架设置为最大:JFrame类实例.setExtendedstate(Frame.MAXIMIZED_BOTH);参数还可以有其他选择:.NORMAL,.ICONIFIED,.MAXIMIZED_VERT,.MAXIMIZED_HORIZ

  • 使用多个显示屏幕的应用程序,使用GraphicsEnvironment和GraphicsDevice类

  • 内容窗格,绘制组件需要定义一个JComponent的扩展类,并且在此类中将paintComponent方法覆盖掉,注意是覆盖掉,paintComponent方法有一个Graphics类型的参数,利用它来绘制图案,图像和文本。

  • painComponent方法是不需要人工调用的,它将自动调用

  • repaint方法用于强制刷新屏幕

  • 在Graphics类中有一个drawString方法,.drawString(string,x,y)具体绘制字符串

  • container类中存在add(component)方法,利用这个方法通过组件名,将组件加入到框架中

  • java2d库,paintComponent中的参数Graphics,只要将这个参数强制转化为Graphics2D类型并传给此类型的变量引用,要绘制图形,首先要创建一个实现了Shape接口的类的对象(Graphics2D实现了shape接口),然后使用此对象的.draw方法绘制

  • java2D采用浮点型像素座标,很多计算是float型,不过应为编译器默认小数位double型,所以需要将小数常量后加F,作为单精度使用,有事还需要强制转化为float型,这样比较麻烦,因此每一个图形类提供了两个版本,参数为float型(省空间)的和参数为double型(方便)的。详述与P272

  • 作者建议,尽可能使用Point2D来表示点,而不是x,y,这样方便理解。详述与P272

  • 关于直线,椭圆的绘制详述与P274

  • 填充颜色过程:a.选择颜色(g2.setPait(color))----b.绘制图(g2.drawString)    g2.fill(图形) 填充图形颜色,.fill 填充后可以不使用.draw画出,a和b的过程可以反复进行绘制多种颜色,详述与P278

  • 对于字体的描绘,详述与P281,通过Font类对象设置字体信息,new Font("字体名",Font.字体格式,字体大小)

  • Font.deriveFont(a),a如果是float型,相当于改变字体大小,a如果是Int型改变字体风格。

  • 绘制图像,先得到p_w_picpath类的对象实例用于存储图片,然后使用g2.drawImage(p_w_picpath对象实例,x,y,null)来绘制图片到指定区域,利用g2.copyArea(a,b,c,d,x,y)利用前四个参数锁定需要复制的区域,复制到后两个参数锁定的位置。                   

  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章