第十二周实验及总结

一、知识点总结

1、swing概述:swing基于AWT架构之上,Swing是指被绘制的用户界、面类,AWT是指像事件处理这样的窗口工具箱的底层机制,Swing可以让用户随意的选择喜欢的感官。

2、框架:没有包含在其他窗口中的窗口被称为框架(frame),在AWT中有一个Frame类,是用来描述框架的,这个类在Swing版本中是JFrame(绝大数的Swing组件都有J开头),它是极少数几个不绘制在画布上的Swing组件之一,它的修饰部件(如按钮,标题栏,图标等)由用户的窗口系统绘制,而不是由Swing绘制,Swing用来绘制框架里的内容。 

     JFrame.setVisible(true)方法可以让框架可见,

     JFrame.show()可以让框架可见并且置于其他窗口的前面。

     JFrame.setDefaultCloseOperation(int i)可以定义关闭这个框架时候的响应动作,让程序退出的常量是JFrame.EXIT_ON_CLOSE。(以上方法都不是静态方法!)在初始化完后,main方法退出,这个时候程序并没有终止,终止的只是主线程,事件调度线程保持程序处于激活状态,直到关闭框架或者调用System.exit。 

3、改变框架: 

  3.1、Component类:setVisible(boolean bool)设置窗口是否显示;

                                  set||getSize(int w,int h||Dimension d)设置/获取大小;

                                 set||getLocation(int x,int y)设置获取位置,setBounds(int x,int y,int w,int h)设置位置和大小。 

  3.2、windows类:toBack()将窗口移动到桌面窗口栈的后面 ;

                             toFront()将窗口移动到桌面的前面;

                             setLocationByPlatfrom(boolean bool)由平台选择一个合适的位置显示窗口。 

  3.3、Frame类: isResizable(boolean bool)是否可以让用户改变大小;

                           setTitle(String str)设置标题;

                           setIconImage(Image img)设置框架的图标。 

                           setUndecorate(boolean bool)框架显示中的标题栏以及关闭按钮这些是否显示;

                           setExtendedState(int state)设置窗口的状态,如Frame.ICONIFIED可以让窗口最小化。

  3.4、Toolkit类:getDefaultToolkit()返回一个默认的工具箱;

                         Dimension getScreen()返回用户屏幕的尺寸;

                         Image getImage(String filename)加载得到一个指定的图像对象。

4、绘制组件:绘制一个组件,需要定义一个扩展JComponent的类,并覆盖其中的paintComponent(Graphics g)方法,在JAVA中,所有的绘制都必须使用Craphics对象。只要窗口需要重新绘图时,事件处理器就会通告组件,从而执行所有组件的paintComponent方法。不用自己调用paintComponent方法,在应用程序需要重新绘图的时候,这个方法会自动的被调用,如果需要强制重新绘制组件,那么要调用的是repaint方法,他将引发采用相应配置的Graphics对象调用所有组件的paintComponent方法。

  4.1、JFrame类:getContentPane()返回框架里的内容窗口;

                           add(Component comp)将一个给定的组件添加到该框架的内容窗口中。 

  4.2、Component类:repaint()重新绘制组件。

  4.3、JPanel类是一个可以包含其他组件的容器,但同样也可以在其上面进行绘制。

 5、绘制2D图形:主要是用java.awt.Graphics2D类去绘制图形的。图形的类主要在java.awt.geom里。要掌握这些之间的关系。

      paintComponent方法可以自动获得一个Graphics对象,可以把他强制转型成Graphics2D对象。

二、实验——图形程序设计

1、实验目的与要求

(1) 掌握Java GUI中框架创建及属性设置中常用类的API;

(2) 掌握Java GUI中2D图形绘制常用类的API;

(3) 了解Java GUI中2D图形中字体与颜色的设置方法;

(4) 了解Java GUI中2D图像的载入方法。

2、实验内容和步骤        

实验1: 导入第10章示例程序,测试程序并进行代码注释。

测试程序1:

运行下列程序,观察程序运行结果。

import javax.swing.*;

public class SimpleFrameTest

{

   public static void main(String[] args)

   {

     JFrame  frame = new JFrame();

     frame.setBounds(0, 0,300, 200);//框架的初始位置和大小

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//框架的关闭按钮

     frame.setVisible(true);   

   }

}

l  在elipse IDE中调试运行教材407页程序10-1,结合程序运行结果理解程序;与上面程序对比,思考异同;

l  掌握空框架创建方法;

l  了解主线程与事件分派线程概念;

l  掌握GUI顶层窗口创建技术。

示例程序运行结果:

201771010108 -韩腊梅-第十二周学习总结

package simpleFrame;

import java.awt.*;
import javax.swing.*;

/**
 * @version 1.33 2015-05-12
 * @author Cay Horstmann
 */
public class SimpleFrameTest
{
   public static void main(String[] args)
   {
      EventQueue.invokeLater(() ->//lamdba函数
         {
            SimpleFrame frame = new SimpleFrame();//构建一个SimpleFrame对象
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭操作
            frame.setVisible(true);
         });
   }
}

class SimpleFrame extends JFrame
{
//定义两个私有属性
   private static final int DEFAULT_WIDTH = 300;
   private static final int DEFAULT_HEIGHT = 200;

   public SimpleFrame()
   {
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
   }
}
10-1

相关文章:

  • 2021-12-13
  • 2021-06-21
  • 2022-01-30
  • 2021-08-31
  • 2021-10-19
  • 2022-01-01
  • 2021-06-26
  • 2021-08-26
猜你喜欢
  • 2021-07-14
  • 2021-06-02
  • 2021-07-24
  • 2022-02-09
  • 2021-11-26
  • 2021-06-27
  • 2021-07-30
相关资源
相似解决方案