1,登陆界面(JFrame,JLabel)
我们先来做一个仿QQ的登陆界面,并实现当输入正确的账号和密码时,跳出画图板。
首先,我们要知道,java中的所有界面(窗体,面板及其中的各个元素组件)都是画出来的。而java提供了两个现成的组件用来画这些界面:
1,awt组件
awt组件是基础组件。这些组件的实现调用了操作系统底层的绘图函数。
2,swing组件
swing组件是awt组件的扩展。
这里我们使用的是swing组件。
swing组件中包含的常用组件类:
1,容器组件类:
能添加容器组件和元素组件的类就是容器组件类。(顶级容器之间不能相互添加)
JFrame类:
窗体容器组件类。 顶级容器。
JPanel类:
这时我们就要简单了解一下图形界面的布局了。(这里我们只介绍两种最常用的布局)
流式布局(FlowLayOut):JFrame默认为流式布局。也就是说,想象你的整个界面是一张白纸,要在上面写字 或者画画,而流式布局规定只有当一行写满时才会跳到下一行。
当我们的界面相对复杂一些的时候,我们就需要边框布局:
边框布局(BorderLayOut):JPanel默认为边框布局。让我们用图形来更清晰的认识一下这种布局:
如图,这种布局将面板分为五个部分,每一个部分分别都是一个容器组件。
举个例子:
这段代码就创建了一个北边的面板,这时我们就可以在这个面板上添加所需的按钮了
2,元素组件类:
JLabel标签元素组件类显示文字或者图片
JTextField文本输入框元素组件类接收输入信息,将输入信息显示出来
JPasswordField密码输入框元素组件类接收输入信息,将输入的信息以某个符号代替显示
JCheckBox复选框(多选框)元素组件类首先又一个选择框,在选择框后还能显示文字或者图片信息
JButton按钮元素组件类显示文字或图片,提供一个点击效果
JPasswordField密码输入框元素组件类接收输入信息,将输入的信息以某个符号代替显示
JCheckBox复选框(多选框)元素组件类首先又一个选择框,在选择框后还能显示文字或者图片信息
JButton按钮元素组件类显示文字或图片,提供一个点击效果
以即将开始做的登录界面为例:
3,辅助类:帮助组件完成某一个功能的类
javax.swing.ImageIcon图标类将磁盘上的图片文件加载到程序中。
java.awt.FlowLayout流式布局类流式布局类似word文档(所有的布局类都只能应用于容器组件上) 在java.awt和javax.swing包下所有以Layout结尾的类都是布局类
java.awt.Dimension封装类用来封装组件的宽度和高度
javax.swing.ImageIcon图标类将磁盘上的图片文件加载到程序中。
java.awt.FlowLayout流式布局类流式布局类似word文档(所有的布局类都只能应用于容器组件上) 在java.awt和javax.swing包下所有以Layout结尾的类都是布局类
java.awt.Dimension封装类用来封装组件的宽度和高度
//登录界面 package Login_Drawing; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.*; public class LoginFrame { public void login() { JFrame frame = new JFrame(); frame.setSize(550,450); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(3); frame.setTitle("天天画图登录"); JPanel panel = new JPanel(); //北边的面板(背景图片) frame.add(panel,BorderLayout.NORTH); JPanel panel2 = new JPanel(); //西边的面板(头像图片) frame.add(panel2,BorderLayout.WEST); JPanel panel3 = new JPanel(); //中间的面板 frame.add(panel3,BorderLayout.CENTER); ImageIcon image = new ImageIcon(this.getClass().getResource("053.jpg")); //背景图片 JLabel lab = new JLabel(image); lab.setPreferredSize(new Dimension(550,200)); panel.add(lab); ImageIcon image2 = new ImageIcon(this.getClass().getResource("052.jpg")); //头像图片 JLabel lab2 = new JLabel(image2); lab2.setPreferredSize(new Dimension(130,130)); panel2.add(lab2); JTextField text = new JTextField(); text.setPreferredSize(new Dimension(300, 30)); panel3.add(text); JLabel label = new JLabel(" 账号"); panel3.add(label); JPasswordField password = new JPasswordField(); password.setPreferredSize(new Dimension(300, 30)); panel3.add(password); JLabel label2 = new JLabel(" 密码"); panel3.add(label2); JCheckBox box1 = new JCheckBox("记住密码 "); panel3.add(box1); JCheckBox box2 = new JCheckBox("自动登录 "); panel3.add(box2); JButton but = new JButton("安全登录 "); but.setPreferredSize(new Dimension(270, 30)); panel3.add(but); LoginLis lis = new LoginLis(frame); but.addActionListener(lis); frame.setVisible