图形用户界面编程
前言
要进行Java的图形用户界面编程就需要学习Java的API,即Application Programming Interface——应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
Java API中提供了两套组件用于支持编写图形用户界面,包括AWT和Swing。AWT是SUN公司早期推出的,AWT在开发时为了保证平台独立性,采用的方法是在某种平台上分别用该平台的本地GUI工具包实现GUI组件,也就是说AWT的实现言重依赖与下层操作系统,这就导致AWT组件的外观取决于程序运行的平台。所以为了克服AWT的缺点和限制,SUN公司在AWT的继承上开发了Swing,与AWT组件相比Swing组件是轻量级的GUI组件,完全由纯代码编写,不依赖于任何特定平台,因此据哟更好的平台无关性和可移植性。
GUI编程
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
图形用户界面是一种人与计算机通讯执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
实现功能不能缺少组件,主要包括以下的一些组件:
窗口
弹窗
面板
文本框
列表框
按钮
图片
监听事件
鼠标
键盘事件
…
AWT(Abstract Windows tools)
AWT简介
包含了很多类和接口!
元素:窗口,按钮,文本框
java.awt 包
代码及成果展示
package demo01;
import java.awt.Container;
import javax.swing.JDialog;
import javax.swing.JLabel;
public class JDialogTest extends JDialog{
/*public JDialogTest() {
* setVisible(true);
}*/
public static void main(String[] args) {
JDialog jd=new JDialog();
jd.setVisible(true);
jd.setBounds(200,200,300,400);
Container c=jd.getContentPane();//获取窗体容器
c.add(new JLabel("这是一个标签"));
}
}
package demo01;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JFrameTest extends JFrame {
public JFrameTest(){
//设置窗体可见
setVisible(true);
//注意:点击关闭没有结束程序运行
/*
* EXIT_ON_CLOSE:隐藏窗体,并停止程序
* DISPOSE_ON_CLOSE:释放窗体资源
* DO_NOTHING_ON_CLOSE:无任何操作
* HIDE_ON_CLOSE:隐藏窗体,但是不停止程序
* */
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setLocation(200, 200);//设置位置,单位是像素,从左上角0,0开始
//setSize(300, 400);//设置大小,单位:像素
setBounds(200,200,300,400);
Container c=getContentPane();
c.setBackground(Color.pink);//设置背景颜色
JLabel l=new JLabel("自动登录");
c.add(l);//添加组件
//c.remove(l);//移除组件
c.validate();
//f.setContentPane(c);
setResizable(false);
System.out.println("x="+getX()+"Y="+getY());
}
public static void main(String[] args) {
//JFrame f=new JFrame("袁雪华的宝");//创建窗体对象,可在参数中设置窗口标题
new JFrameTest();
}
}