基本思路:
-
创建类
-
创建方法
-
创建一个窗体,并设置窗体的属性
- 创建JFrame对象
- 设置属性(标题/尺寸/位置/关闭时退出/布局/可视化)
-
创建相关组件,并设置组件的属性
- 创建对象(图标ImageIcon*1/标签JLabel*3/按钮JButton*2/输入框JTextField*1/密码输入框JPasswordField*1/复选框JCheckBox*2/单选框JRadioButton*3)
- 设置属性
- 设置尺寸(创建Dimension对象,设置对象setPreferredSize)
- 设置字体(创建Font对象,设置对象setFont)
- 设置颜色(创建Color对象,设置对象setForeground)
-
将组件对象添加至窗体上(.add)
-
-
编写程序入口
具体演示:
先创建一个类命名为LoginUI,并导入java源码中的相关包(后面输入程序的时候也会自动导入)
import javax.swing.*;
import java.awt.*;
public class LoginUI {
创建方法showUI( ):
按照思路,先创建一个窗体对象,并设置窗体的属性,如下:
public void showUI(){
JFrame jf = new JFrame();
jf.setTitle("登录");
jf.setSize(800,720);
jf.setLocationRelativeTo(null);//居中
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时退出进程
FlowLayout JF1 = new FlowLayout();//创建一个流式布局对象(即从左到右自适应排列的布局方式)
jf.setLayout(JF1);//流式布局
jf.setVisible(true);//开启可视化
接着创建相关的组件,如下:
ImageIcon icon = new ImageIcon("此处填上图像路径");//创建图标对象
JLabel iconJla = new JLabel ();
JLabel nameJla = new JLabel ();
JLabel pwdJla = new JLabel ();//创建三个标签对象
JTextField nameJtf = new JTextField ();
JPasswordField pwdJpf = new JPasswordField ();//分别创建账号密码输入框
JButton loginBtn = new JButton ();
JButton registerBtn = new JButton ();//创建登录注册按钮
JCheckBox rememberJcb = new JCheckBox ();
JCheckBox autoLoginJcb = new JCheckBox ();//创建两个复选框
JRadioButton adminJrb = new JRadioButton ();
JRadioButton userJrb = new JRadioButton ();
JRadioButton vipJrb = new JRadioButton ();//创建三个单选框
ButtonGroup btnG = new ButtonGroup ();// 将三个单选框 划为一个组
btnG.add (adminJrb);
btnG.add (userJrb);
btnG.add (vipJrb);
下一步,设置各个组件的属性,为方便调用,先分别创建两个字体对象和两个颜色对象:
Font font1 = new Font ("黑体", Font.BOLD, 16);
Font font2 = new Font("黑体", Font.PLAIN, 14);
Color color1=new Color(121, 90, 95);
Color color2=new Color(239, 223, 223);
接着,开始属性的设置,首先是图像和文本部分:
iconJla.setIcon (icon);// 设置图像
nameJla.setText ("账号:");
pwdJla.setText ("密码:");
loginBtn.setText ("登录");
registerBtn.setText ("注册");
rememberJcb.setText ("记住密码");
autoLoginJcb.setText ("自动登录");
adminJrb.setText ("管理员");
userJrb.setText ("用户");
vipJrb.setText ("会员");
接着,是各个文字的颜色和字体部分:
nameJla.setFont (font1);
nameJla.setForeground(color1);
pwdJla.setFont (font1);
pwdJla.setForeground(color1);
loginBtn.setFont (font1);
loginBtn.setForeground(color1);
registerBtn.setFont (font1);
registerBtn.setForeground (color2);//完成账号密码登陆注册的字体和颜色设置
rememberJcb.setFont(font2);
autoLoginJcb.setFont(font2);
adminJrb.setFont(font2);
userJrb.setFont(font2);
vipJrb.setFont(font2);
rememberJcb.setForeground(color1);
autoLoginJcb.setForeground(color1);
adminJrb.setForeground(color1);
userJrb.setForeground(color1);
vipJrb.setForeground(color1);//完成剩余小字部分的设置
最后,应对两个按钮和两个输入框的属性进一步设置:
loginBtn.setBackground (color2);
registerBtn.setBackground (color1);//设置按钮的背景颜色Background
Dimension dim = new Dimension ();//先创建Dimension对象,再进行设置
dim.setSize (300, 40);
nameJtf.setPreferredSize (dim);
pwdJpf.setPreferredSize (dim);//设置输入框的的大小
至此,所有组件的属性都已经设置完成。需要将设置好的组件添加的窗体上,使之得以显示,如下:
jf.add (iconJla);
jf.add (nameJla);jf.add (nameJtf);
jf.add (pwdJla);jf.add (pwdJpf);
jf.add (rememberJcb);jf.add (autoLoginJcb);
jf.add (adminJrb);jf.add (userJrb);jf.add (vipJrb);
jf.add (loginBtn);jf.add (registerBtn);//此处为添加的步骤
jf.setVisible (true);// 设置可视化
jf.setResizable (false);// 设置大小不可改变,否则流式布局将自动排版,效果难言
程序入口:
最后一步,编写程序入口使代码来调用方法,先创建对象,再调用方法,如下:
public static void main(String[] args){
LoginUI loginUI = new LoginUI ();
loginUI.showUI ();
}
}
完成所有程序的编写。
学习日记:
- 完成一段程序逻辑清晰是至关重要的一点,创建类,创建对象,设置对象的属性,不同对象间的添加,最后的综合调用等都需要清晰的思路。
- 避免调用的重复,预先设置对象方便调用,以此简化代码。