- 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型改变字体风格。
- 绘制图像,先得到image类的对象实例用于存储图片,然后使用g2.drawImage(image对象实例,x,y,null)来绘制图片到指定区域,利用g2.copyArea(a,b,c,d,x,y)利用前四个参数锁定需要复制的区域,复制到后两个参数锁定的位置。
时间: 2024-10-24 16:51:59