赞
踩
- GUI(图形化界面编程)
- GUI编程要使用组件,库里面已经定义好了,找到这个组件,并且去创建它的对象,显示出来就可以了
- javax.swing包(可视化组件):窗体、按钮、文本框、图片
- java.awt包(元素组件):布局管理器,设置颜色时用到的颜色类,画笔
- 窗体是最顶级的容器,这些组件都依赖于窗体,这些组件如果没有放到窗体里面是显示不了的。
- 窗体是最顶级的容器,它里面可以放好多的组件,但是放一个组件进来的时候它应该放在窗体的哪个位置呢?这时候就需要通过布局管理器来摆放位置,确定摆放规则。
- 设置窗体大小/宽高的单位是像素
- 布局管理器:控制位置的摆放,确定摆放规则,并且给一个默认的大小
- 除了窗体设置大小是用setSize,其他组件设置大小全部是setPreferredSize
- ImageIcon这个类负责从磁盘中加载数据
- 不能把图片直接加载到窗体上,因为ImageIcon这个类负责从磁盘中加载图片,窗体是最顶级的容器,如果要在窗体上显示图片,则还要单独为这个图片去创建一个容器去装载这些数据,然后再把这个容器添加到窗体上,要有这样的一个过渡。
- 用JLable标签去装载图片数据。
- JLabel标签不仅可以放图片数据,还可以放文本数据。用户提示也用JLabel标签。
- 输入框/文本框----->JTextField类
- JCheckBox类实现复选框
- package com.gch.GUI;
-
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Objects;
-
- public class Login {
- /**
- 显示登录界面的方法
- */
- public void showUI(){
- JFrame jf = new JFrame("登陆界面");
- // 设置窗体大小,单位是像素
- jf.setSize(500,380);
- jf.setLocationRelativeTo(null); // 设置居中显示
- jf.setDefaultCloseOperation(3); // 设置退出进程
- jf.setResizable(false); // 设置窗体大小固定
-
- // 设置流式布局管理器,控制位置摆放,确定摆放规则,并给一个默认的大小
- jf.setLayout(new FlowLayout());
-
- // 加载图片,ImageIcon这个类负责从磁盘中加载图片
- ImageIcon image = new ImageIcon("C:\\Users\\A.G.H\\Pictures\\Camera Roll\\0124fc57d6bc9b0000012e7e5f05b8.jpg@1280w_1l_2o_100sh.jpg");
-
- // 用JLabel标签这个组件去装载图片数据
- JLabel jla = new JLabel(image);
- // 如果图片过大,会把其他组件从窗体中挤出去
- // 所以我们要设置装载图片容器的大小
- // 除了窗体JFrame设置大小是用setSize,其他组件设置大小全部是用setPreferredSize
- // 设置装载图片容器JLabel的大小
- jla.setPreferredSize(new Dimension(680,210));
- // 把装载图片容器JLabel添加到窗体上
- jf.add(jla);
-
- // 文本框的用户提示也用JLabel标签,JLabel标签不仅可以放图片数据,还可以放文本数据
-
- // 账号用户提示 prompt:提示
- JLabel accountUserPrompt = new JLabel("账号: ");
- // 把账号用户提示添加到窗体上
- jf.add(accountUserPrompt);
-
- // 输入框:文本框----JTextField
-
- // 账号输入框
- JTextField account = new JTextField();
- // 设置文本框大小
- account.setPreferredSize(new Dimension(420,30));
- // 把账号输入框添加到窗体上
- jf.add(account);
-
- // 密码用户提示
- JLabel passwordUserPrompt = new JLabel("密码: ");
- // 把密码用户提示添加到窗体上‘
- jf.add(passwordUserPrompt);
-
- // 密码输入框
- JTextField password = new JTextField();
- // 设置文本框大小
- password.setPreferredSize(new Dimension(420,30));
- // 把密码输入框添加到窗体上
- jf.add(password);
-
- // 按钮类:JButton
-
- // 注册账号按钮
- JButton registerAccount = new JButton("注册账号");
- // 把注册账号按钮添加到窗体上
- jf.add(registerAccount);
- // 找回密码按钮
- JButton retrievePassword = new JButton("找回密码");
- // 把找回密码按钮添加到窗体上
- jf.add(retrievePassword);
-
- // JCheckBox类实现复选框
-
- // 记住密码复选框
- JCheckBox rememberPassword = new JCheckBox("记住密码");
- // 把记住密码复选框添加到窗体上
- jf.add(rememberPassword);
- // 自动登录复选框
- JCheckBox autoLogin = new JCheckBox("自动登录");
- // 把自动登录复选框添加到窗体上
- jf.add(autoLogin);
-
- // 登录按钮
- JButton login = new JButton("登录");
- // 给登录按钮设置背景色
- login.setBackground(Color.pink);
- // 把登录按钮添加到窗体上
- jf.add(login);
-
- jf.setVisible(true); // 设置可见
-
- // 监听器的使用:设计界面程序的交互功能
- /* 监听器:1.找事件源:当前动作所发生的组件 例如:在输入框输入123之后按回车键,事件源是输入框
- 2.监听器的选择:用什么监听器,设计什么样的功能就选择什么样的监听器
- 3.绑定事件处理类(当监听器监听到按钮上有动作发生,要处理这个动作,实际上就是设计它的响应功能)
- */
-
- // 给登录按钮添加动作监听器
- login.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- if(Objects.equals(account.getText(),"123") && Objects.equals(password.getText(),"123")){
- JOptionPane.showMessageDialog(jf,"登录成功!");
- }else{
- JOptionPane.showMessageDialog(jf,"您输入的账号或者密码错误!");
- }
- }
- });
- }
- }
- package com.gch.GUI;
-
- public class Manage {
- /**
- 主函数
- */
- public static void main(String[] args) {
- Login login = new Login();
- login.showUI();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。