图形用户界面(GUI)窗口

|## 1. JFrame 介绍

示例窗体
JFrame jf = new JFrame();
jf.setSize(450, 600);              //设置窗口的 宽度 和 高度(单位是像素)。
jf.setTitle("登录界面");                //设置窗口的 标题,显示在窗口的最上方(标题栏)。
jf.setLocationRelativeTo(null);            // 居中显示
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //设置窗口关闭时的 行为。
jf.setVisible(true);    //窗口默认是不可见的,必须调用 setVisible(true) 让它显示出来。
JFrame 的常用方法
方法作用
setSize(int width, int height)设置窗口大小
setTitle(String title)设置窗口标题
setVisible(boolean visible)显示/隐藏窗口
setDefaultCloseOperation(int operation)关闭窗口时的行为
setLocationRelativeTo(Component c)设置窗口相对 c 居中,null 表示屏幕居中
setResizable(boolean resizable)是否允许用户调整窗口大小
getContentPane().add(Component c)添加组件到窗口
setDefaultCloseOperation 参数含义
代表的常量作用
0DO_NOTHING_ON_CLOSE关闭窗口但不做任何处理
1HIDE_ON_CLOSE关闭窗口但不退出程序(默认)
2DISPOSE_ON_CLOSE关闭窗口并释放资源,但不退出
3EXIT_ON_CLOSE关闭窗口并退出程序

2流式布局管理器

控制容器中组件的排列方式。它的工作原理类似于文本的排版方式——将组件按顺序排列,直到一行填满为止,然后开始新的一行。可以理解为一个“流式”的布局管理器。

示例:
  // 参数:对齐方式,水平间距,垂直间距
  FlowLayout flow = new FlowLayout(FlowLayout.CENTER, 10, 20);
  jf.setLayout(flow);

1.对齐方式:FlowLayout.CENTER 表示将所有组件居中对齐。如果你更改为 FlowLayout.LEFT,组件将从左侧开始排列,FlowLayout.RIGHT 则是右对齐。
2.水平间距 (hgap):这里设置为 10,表示每个组件之间的水平间距为 10 像素。
3.垂直间距 (vgap):这里设置为 20,表示每个组件之间的垂直间距为 20 像素。

3.加载图片

示例:
 //加载图片
        ImageIcon image = new ImageIcon("D:\\chen\\图片\\1.jpg");
        //标签
        JLabel jla = new JLabel(image); //创建 JLabel 来显示图片
        jf.add(jla);  //将标签添加到容器

图像缩放
Image img = image.getImage();  // 获取原始图像
Image scaledImg = img.getScaledInstance(600, 400, Image.SCALE_SMOOTH);  // 缩放到 600x400
image = new ImageIcon(scaledImg);  // 创建新的 ImageIcon

4.提示信息

示例:
  JLabel user = new JLabel("账号");
        jf.add(user);
JLabel 是 Swing 中用于显示文本、图像或两者结合的组件。

5. 账号框

示例:
 JTextField jtf = new JTextField();  
        //除了JFrame,其它组件上设置大小都是该方法
       Dimension dm = new Dimension(370,30);
       jtf.setPreferredSize(dm);
       jf.add(jtf);

JTextField:这是一个用来显示和编辑文本的组件。它通常用于获取用户的输入。
Dimension:Dimension 类用于表示一个尺寸,它包含两个属性:宽度 (width) 和高度 (height)。

6 按钮

1.示例
        JButton jbu = new JButton("登录");
        jf.add(jbu);
                //设置可见,所有的组件在可见之前添加
        jf.setVisible(true);
2.设置按钮的字体:
jbu.setFont(new Font("Arial", Font.BOLD, 16)); // 设置字体为 Arial,粗体,字号为 16
3.设置按钮的背景和前景颜色:
jbu.setBackground(Color.BLUE);  // 设置背景色
jbu.setForeground(Color.WHITE); // 设置文本颜色
4.设置按钮的大小
jbu.setPreferredSize(new Dimension(150, 40)); // 设置按钮大小
5.设置按钮的边框:
jbu.setBorder(BorderFactory.createLineBorder(Color.BLACK)); // 创建黑色边框
6.按钮的状态控制:
jbu.setEnabled(false); // 禁用按钮,按钮不可点击,反之为true
7.设置按钮按下时的效果
ImageIcon pressedIcon = new ImageIcon("pressed_icon.png");
ImageIcon rolloverIcon = new ImageIcon("rollover_icon.png");

jbu.setPressedIcon(pressedIcon);  // 按下按钮时显示的图标
jbu.setRolloverIcon(rolloverIcon); // 鼠标悬停按钮时显示的图标
8.设置按钮的透明度(设置按钮背景透明)
jbu.setOpaque(false); 
// 使按钮背景透明
9.设置按钮的工具提示

按钮的工具提示是鼠标悬停在按钮上时显示的一些帮助文本。

jbu.setToolTipText("点击登录以进入系统"); // 设置工具提示文本

监听器

在 Java 中,监听器(Listener)是用于响应用户操作(如点击、输入、拖动等)的组件。通过事件驱动编程模型,当用户在界面上执行某个操作时,系统会触发相应的事件,并通过监听器来处理这些事件。

示例:
        //给登录按钮添加动作监听器方法
        //接口不能直接创建对象:重新定义类实现(继承)接口,重写接口中的抽象方法
        ButtonListener listener = new ButtonListener();
        jbu.addActionListener(listener);
        //把账号框对象传递给ButtonListener类
        listener.userField = jtf;
package com.jk.listener0208;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//事件处理类
//实现接口一定要重写接口中的抽象方法
public class ButtonListener implements ActionListener {
    //默认注册账号,密码
    public String name="123";
    //引用传递(初始化属性)
    public JTextField userField;  //保存传递过来的账号框对象
    //重写接口中的抽象方法
    //事件处理方法
    public void actionPerformed(ActionEvent e){
        //获取输入的账号,密码
        String userName = userField.getText();
        //验证账号,密码
        //比较字符串内容是否一致必须用equals方法
        if(name.equals(userName) ){
            System.out.println("yes");
            //显示新界面
        }else{
            System.out.println("no");
        }
        System.out.println("点击按钮!userName = "+userName);
    }
}
Java 中的事件监听器分为多种类型,每种监听器都对应不同的事件类型。常见的监听器包括:
  1. ActionListener:用于处理按钮点击、菜单项选择等动作事件。
  2. MouseListener:用于处理鼠标事件(如点击、进入、离开等)。
  3. KeyListener:用于处理键盘事件(如按键、释放键等)。
  4. WindowListener:用于处理窗口事件(如窗口打开、关闭等)。
  5. FocusListener:用于处理组件焦点事件(如获得或失去焦点)。
  6. ItemListener:用于处理复选框、单选框等选择性组件的状态改变事件。

效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值