1.了解Java的图形界面类有哪些?
1.1 AWT组件——最初始的界面基础
AWT组件的名字由来是根据它的包名而来的,它的包名叫做java.awt。
AWT组件是在JDK1.0的时候推出的图形界面类。
AWT组件是采用C和C++混合实现的,而且这套组件调用了操作系统底层的绘图函数,来实现的组件绘制;
因为需要调用操作系统底层的函数,这样就导致这套组件在不同的平台上,需要独立去开发,所以就不能很好的实现Java提倡的跨平台性。
1.2 SWING组件——界面的扩展
SWING组件的名字由来是根据它的包名而来的,它的包名叫做javax.swing。
SWING组件是在JDK1.4的时候推出的图形界面类。
SWING组件是基于AWT的基础上,采用纯Java代码来实现的一套新的轻量级组件,这套组件只需要编写一次,就可以发布在各个平台上。
2.实现登录界面所需的API类要哪些?
2.1 容器组件类:能添加容器组件或者元素组件的就是容器组件类。
JFrame 窗体容器组件类 顶级容器(顶级容器相互之间不能添加)
2.2 元素组件类:一般只用来显示文字、图片或接收用户输入信息的就是元素组件类。
JLabel——标签元素组件类
显示文字、图片信息
JTextField——文本输入框元素组件类
接收用户输入的信息,并且直接显示出来
JPasswordField——密码输入框元素组件类
接收用户输入的信息,但是以某一个符号代替显示
JCheckBox——复选框元素组件类
提供一个选择框,在选择框后还能显示文字或图片信息
JButton——按钮元素组件类
显示文字、图片信息,还能点击(有一个点击的效果)
上述的容器组件类和元素组件类都是SWING组件中的类,那么你在使用的时候要记得加上包名,例如:javax.swing.JFrame;javax.swing.JLabel。
2.3 辅助类:帮助组件完成某一个特定功能的类。
javax.swing.ImageIcon——图标类
将磁盘上的图片文件加载程序中。
java.awt.Dimension——封装类
封装组件的宽度和高度。
java.awt.FlowLayout——流式布局类
布局效果类似于word文档。
Java中所有的布局类都是针对容器组件的,因为容器组件上要添加其他的组件,这样就必须要设置添加组件的排列对齐方式。
3.登录界面的实现(类似于我们平时搭积木的过程)
1.新建一个Login登录界面类,该类实现主函数和初始化界面的方法。
2.在主函数中,实例化Login登录界面类的对象,然后使用对象名去调用初始化界面的方法。
3.在初始化界面的方法中,实例化JFrame窗体顶级容器类的对象。
4.设置JFrame窗体顶级容器的属性值,比如:标题、大小、显示位置、关闭操作、布局、可见。
5.实例化元素组件类的对象,然后将对象添加到窗体上(添加的组件必须要在可见之前完成)。
实例代码:
package ExamplePackage;
public class Login {
public static void main(String[] args) {
// 在主函数中,实例化Login登录界面类的对象
Login log = new Login();
// 然后使用对象名去调用初始化界面的方法。
log.init();
}
public void init() {// 初始化界面的方法
javax.swing.JFrame frame = new javax.swing.JFrame();
/*
* 也可以 import javax.swing.JFrame;
* JFrame frame = new JFrame();
*/
frame.setTitle("Login");// 设置窗体的标题属性值
frame.setSize(300, 400);// 设置窗体的宽度和高度,单位是像素。
frame.setLocationRelativeTo(null);// 设置组件显示的相对位,参数是null则表示显示屏幕的中央。
frame.setDefaultCloseOperation(3);// 设置窗体的关闭操作,3表示关闭窗体退出程序。
java.awt.FlowLayout fl = new java.awt.FlowLayout();//实例化FlowLayout流式布局类的对象
frame.setLayout(fl);//设置窗体的布局方式为流式布局fl。
/*
* 流式布局是java中最常用的布局方式之一,严格意义上所有界面都可以用流式布局实现。就像一段数据流,
* 系统会根据代码中添加组件的顺序依次网界面上放组件,从上而下,从左而右,当一行满了时会放入下一行。
* 添加完毕后,默认状态下会将每一行组件居中。
*/
// 实例化ImageIcon类的对象,该对象加载磁盘上的图片文件到程序中。
javax.swing.ImageIcon img = new javax.swing.ImageIcon(
"D:\\Work\\Study\\programme\\java\\workspace\\界面\\pic\\butterfly.jpg");
// 实例化JLabel标签类的对象,设置组件要显示的图片对象
javax.swing.JLabel labIcon = new javax.swing.JLabel(img);
java.awt.Dimension dim = new java.awt.Dimension(300,100);
// 实例化一个封装类(可以看成是一个模具),这个模具的大小是宽300像素,高度是100像素)
labIcon.setPreferredSize(dim);
//将labIcon套入这个模具,使其大小为300×100(几乎所有组件都可用Dimension类来改变大小)
// 将labIcon组件添加到窗体上。
frame.add(labIcon);
// 实例化JLabel标签类的对象,设置组件要显示的文字信息为"账号:"
javax.swing.JLabel labName = new javax.swing.JLabel("账号:");
// 将labName组件添加到窗体上。
frame.add(labName);
frame.setVisible(true);
//最重要的一句,将界面显示性设为真,不加这句话运行则什么都显示不出来。而且必须放在添加组件的语句后。
}
}
运行结果: