JAVA自学-GUI

来源:互联网 发布:启用网络发现保存不了 编辑:程序博客网 时间:2024/05/17 00:50

7.1Swing概述

·Swing仅仅提供了能力更加强大的用户界面组件;Swing指“被绘制的”用户界面类;AWT是窗口工具箱的底层机制;


7.2创建框架

·AWT库中Frame类:勇于描述顶层窗口;

·Swing版本名为JFrame,用于扩展Frame类,是极少数不绘制在画布上的Swing组件,修饰部件由用户的窗口系统绘制;

·Swing类位于javax.swing包中;所有的Swing组件必须由事件调度线程进行配置,线程将鼠标点击和键盘敲击转移到用户接口组件;

·定义用户关闭框体的响应动作:frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

·框体默认为隐藏;为了显示框体,main方法需要调用框架的setVisible方法;初始化结束后main方法退出,但未终止程序,仅终止主线程,事件调度器保持程序在激活状态直至关闭框体或调用System.exit方法;


7.3框架定位

·setLocation和setBounds方法用于设置框架的位置;

·setIconImage用于告诉窗口系统在标题栏、人物切换窗口等位置显示哪个图标;

·setTitle用于改变标题栏的文字;

·setResizable利用一个boolean值确定框架的大小是否允许用户改变;


7.4框架属性

·组件类的很多方法由获取/设置这一对操作形式出现;getTitile()→setTitle();这一对获取/设置被称为一种属性;对于类型为boolean的属性,获取类方法由is开头;

·属性饱含属性名和类型,get与set后对应词语即为相应的属性名;


7.5决定框架大小

·默认框架大小为0X0;

·获取屏幕大小:Toolkit类的静态方法getDefaultToolkit得到Toolkit对象,调用getScreenSize方法,以Dimension对象的形式返回屏幕大小;

·编写使用多个显示屏幕的应用程序,应该利用GraphicsEnvironment和GraphicsDevice类获得显示屏幕大小;

·GraphicsDevice类允许在全屏下执行应用程序;


7.6在组件中显示信息

·将菜单栏和其他用户界面元素放置在组件中,再将组件添加到框架中;

·所有的绘制必须使用Graphics对象,其中包含了绘制图案,图像和文本的方法;

·只要窗口需要重新绘图,时间处理器就会通知组件,从而引发所有组件的paintComponent方法;不需自己调用paintComponent方法,在重新绘图时,这个方法将被自动调用,不要认为干预这个过程;


7.7 2D图形

·使用JAVA 2D库绘制图形,需要获取一个Graphics2D类对象;paintComponent方法会自动获得一个Graphics2D类对象;

·绘制图形,先创建一个Shape接口的类的对象,然后调用Graphics2D类中的draw方法;


7.8颜色

·使用Graphics2D类的setPaint方法可以为图形环境上所有后续绘制操作选择颜色;g2.setPaint(Color.RED); g2.drawString("Warning!",100,100); ;将draw替换为fill即可填充封闭图形内部;

·绘制多种颜色:选择颜色→绘制图形→选择另一种颜色→ 绘制另一个图形;

·Color类标准色:BLACK,BLUE,CYAN,DARK_GRAY,GRAY,GREEN,LIGHT_GRAY,MAGENTA,ORANGE,PINK,RED,WHITE,YELLOW;

·创建Color对象:Color(int redness,int greenness,int blueness);定制颜色例子:g2.setPaint(new Color(0,128,128));


7.9为文本设置特殊字体

·字体名由字体家族名和一个可选的“Bold”后缀组成;

·GraphicsEnvironment类中getAvailableFontFamilyNames方法返回所有可用的字体名;

·使用某种字体绘制字符,利用字体名、字体风格、字体大小来创建一个Font类对象:Font sansbold14 = new Font ( " SansSerif " , Font.BOLD , 14) ;


7.10图像

·读取本地图像:String filename=“……”;Image’image=ImageIO.read(new File(filename));读取URL图片:String urlname=“……”;Image image=ImageIO.read(new URL(urlname));

·显示图片可用Graphics类的drawImage方法

0 0
原创粉丝点击