用户界面的类型:

  • 字符用户界面(CUI):例如 MS-DOS
  • 图形用户界面(GUI):例如 Microsoft Windows

GUI的两大概念:

  • 组件类(Component):其子类或间接子类创建的对象称为一个组件
  • 容器类(Container):其子类或间接子类创建的对象称为一个容器

AWT:

  • AWT(Abstract Window Toolkit)是在Swing出现之前用来设计界面的工具包
  • 用awt包中的类创建的用户界面在不同的操作平台上有不同的表现。使用不灵活
  • import java.awt.*;

AWT组件大致可以分为以下三类:

  1. 容器类组件
  2. 布局类组件
  3. 普通组件类

Swing:

  • Swing是对AWT的扩展,它是Java 2中的一个标准包
  • 组件都是以J开头,例如:JFrame、JButton等。swing界面在不同的平台上外观完全一样,真正做到平台独立
  • import javax.swing.*;

java 行高字符 图形 java字符界面和图形界面_子类

Java程序界面的构成

一个顶层容器(即主窗口)
顶层容器包含若干个中间容器
每个中间容器包含若干个基本组件

容器: 是用来容纳和管理一组界面元素的对象。基本组件必须被安排在某个容器中,否则就无法使用。

java 行高字符 图形 java字符界面和图形界面_Swing_02


类JFrame是java.awt.Frame的子类,用来创建application,即创建用户主窗口

JFrame常用方法:

  • JFrame(): 无参构造方法,创建无标题窗口。
  • JFrame(String s) : 有参构造方法,创建标题名字是字符串s的窗口
JFrame  win = new JFrame("Hello");
//若是用记事本编辑可能无法适用中文设置
  • setTitle(String title) : 设置窗口(JFrame)标题文本
  • setBounds(int a,int b,int width,int height) :设置窗口的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height
  • get/setSize() : 获取/设置窗口的大小
  • setLocation(int x,int y) :设置窗口的位置,默认位置是(0,0)
  • setLocationRelativeTo(null):设置窗口居中
  • setResizable(boolean b) :设置窗口是否可调整大小,默认可调整
  • setAlwaysOnTop(true) :设置窗口总是在顶端
  • setVisible(boolean b) :设置窗口的可见性,默认False不可见
  • add(Object a) :将组件添加到窗口中
  • dispose() : 撤销当前窗口并释放当前窗口所用的资源
  • setExtendedCloseOperation(int state) :设置窗口的扩展状态,参数state取JFrame类中的类常量MAXIMIZED——HORIZ(水平方向最大化)、MAXIMIZED_VERT(垂直方向最大化)、MAXIMIZED_BOTH(水平、垂直都是最大化)
  • setDefaultCloseOperation(int operation) :设置单击窗口右上角的关闭图标后程序做出的处理,参数operation取JFrame类中的int型static常量DO_NOTHING_ON_CLOSE(什么都不做)、HIDE_ON_CLOSE(隐藏当前窗口)、DISPOSE_ON_CLOSE(隐藏当前窗口并释放窗体占有的其他资源)、EXIT_ON_CLOSE(结束窗口所在的应用程序)

设置JFrame的图标
相关类:

  • 图标类:javax.swing.ImageIcon
  • 图像类:java.awt.ImageIcon

创建图标和图像对象:

  • ImageIcon il = new ImageIcon(“x.gif”);
  • Image image = il.getImage();

设置:

  • setIconImage(image);

设置三个主体窗口实现上面介绍的内容:

import javax.swing.*;
import java.awt.*;
public class TwoThreads_Test{
	public static void main(String[] args){
		//第一个窗口
		JFrame win1 = new JFrame();
		win1.setVisible(true);	
		win1.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		//第二个窗口
		JFrame win2 = new JFrame("Second JFrame");
		win2.setBounds(60,60,300,150);	
		Container con = win2.getContentPane();
		con.setBackground(Color.yellow);		//设置窗口的背景色				
		win2.setVisible(true);		
		win2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);	
		//第三个窗口
		JFrame win3 = new JFrame();
		win3.setTitle("Third JFrame");
		win3.setIconImage(new ImageIcon("a.jpg").getImage());	//更改图标
		win3.setLocation(200,200);
		win3.setSize(300,150);
		win3.setVisible(true);		
		win3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
	}	
}

java 行高字符 图形 java字符界面和图形界面_java 行高字符 图形_03