GDPU Java 天码行空7

实验目的:
熟悉awt组件和三种基本布局,掌握按钮、文本框、标签、等基本控件的使用和事件响应编程。
熟悉布局管理器

1. 窗体关闭事件

💖 WindowCloseEvent.java

import java.awt.event.WindowAdapter; // 导入WindowAdapter类,用于处理窗口事件
import java.awt.event.WindowEvent; // 导入WindowEvent类,用于表示窗口事件import javax.swing.*; // 导入Swing包,用于创建和管理图形用户界面// 创建一个继承自JFrame的类,用于处理窗口关闭事件
public class WindowCloseEvent extends JFrame
{// 构造函数,初始化窗口public WindowCloseEvent(){// 设置窗口标题this.setTitle("窗体关闭事件");// 设置窗口大小this.setSize(600, 300);// 设置默认关闭操作,当窗口关闭时退出程序this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 添加一个窗口监听器,用于监听窗口关闭事件this.addWindowListener(new WindowAdapter(){// 重写窗口关闭事件处理方法@Overridepublic void windowClosing(WindowEvent e){// 当窗口关闭时,退出程序System.exit(0);}});}// 主函数,程序的入口点public static void main(String[] args){// 创建WindowCloseEvent类的实例,即创建一个窗口WindowCloseEvent window = new WindowCloseEvent();// 设置窗口可见window.setVisible(true);}
}

💖 输出结果

在这里插入图片描述

2. 流式布局

三个按钮,点击按钮改变字体颜色,写出实现代码,贴出运行效果。

💖 FlowLayoutButton.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class FlowLayoutButton extends JFrame
{private JButton button1, button2, button3;private JLabel label;public FlowLayoutButton(){// 设置窗口标题this.setTitle("流式布局按钮");// 设置窗口大小this.setSize(300, 200);// 设置布局为流式布局this.setLayout(new FlowLayout());// 创建按钮1button1 = new JButton("按钮1");// 创建按钮2button2 = new JButton("按钮2");// 创建按钮3button3 = new JButton("按钮3");// 创建标签label = new JLabel("点击按钮改变字体颜色");// 为按钮1添加事件监听器button1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){// 当按钮1被点击时,改变标签的字体颜色为红色label.setForeground(Color.RED);}});// 为按钮2添加事件监听器button2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){// 当按钮2被点击时,改变标签的字体颜色为绿色label.setForeground(Color.GREEN);}});// 为按钮3添加事件监听器button3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){// 当按钮3被点击时,改变标签的字体颜色为蓝色label.setForeground(Color.BLUE);}});// 将按钮和标签添加到窗口中this.add(button1);this.add(button2);this.add(button3);this.add(label);}public static void main(String[] args){// 创建FlowLayoutButton类的实例,即创建一个窗口FlowLayoutButton window = new FlowLayoutButton();// 设置窗口可见window.setVisible(true);}
}

💖 输出结果

在这里插入图片描述

3. 网格布局

录入QQ号,不是数字不让录入,写出实现代码,贴出运行效果。

💖 源代码:GridLayoutQQ.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class GridLayoutQQ extends JFrame
{// 创建一个文本输入框private JTextField textField;// 创建一个标签private JLabel label;// 构造函数,初始化窗口public GridLayoutQQ(){// 设置窗口标题this.setTitle("网格布局QQ号输入");// 设置窗口大小this.setSize(300, 200);// 设置布局为网格布局,2行2列this.setLayout(new GridLayout(2, 2));// 创建一个文本输入框,长度为10textField = new JTextField(10);// 创建一个标签,提示用户输入QQ号label = new JLabel("请输入QQ号:");// 为文本输入框添加键盘事件监听器textField.addKeyListener(new KeyAdapter(){// 重写键盘事件处理方法@Overridepublic void keyTyped(KeyEvent e){// 获取按下的键的字符char c = e.getKeyChar();// 如果按下的键不是数字,则不处理if (!Character.isDigit(c)){e.consume();}}});// 将标签和文本输入框添加到窗口中this.add(label);this.add(textField);}// 主函数,程序的入口点public static void main(String[] args){// 创建GridLayoutQQ类的实例,即创建一个窗口GridLayoutQQ window = new GridLayoutQQ();// 设置窗口可见window.setVisible(true);}
}

💖 输出结果

在这里插入图片描述

4. 边界布局

实现鼠标事件案例:鼠标移动到按钮上改变背景颜色,写出实现代码,贴出运行效果。

💖 源代码:BorderLayoutMouse.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class BorderLayoutMouse extends JFrame
{// 创建一个按钮private JButton button;// 构造函数,初始化窗口public BorderLayoutMouse(){// 设置窗口标题this.setTitle("边界布局鼠标事件");// 设置窗口大小this.setSize(300, 200);// 设置布局为边界布局this.setLayout(new BorderLayout());// 创建一个按钮,显示文本为"按钮"button = new JButton("按钮");// 为按钮添加鼠标事件监听器button.addMouseListener(new MouseAdapter(){// 重写鼠标进入事件处理方法@Overridepublic void mouseEntered(MouseEvent e){// 当鼠标进入按钮时,改变按钮的背景颜色为黄色button.setBackground(Color.YELLOW);}// 重写鼠标离开事件处理方法@Overridepublic void mouseExited(MouseEvent e){// 当鼠标离开按钮时,改变按钮的背景颜色为白色button.setBackground(Color.WHITE);}});// 将按钮添加到窗口的中心区域this.add(button, BorderLayout.CENTER);}// 主函数,程序的入口点public static void main(String[] args){// 创建BorderLayoutMouse类的实例,即创建一个窗口BorderLayoutMouse window = new BorderLayoutMouse();// 设置窗口可见window.setVisible(true);}
}

💖 运行结果

在这里插入图片描述

5. Eclipse中安装WindowBuilder插件

  • 👨‍🏫 安装教程
    不知道成没成功
    在这里插入图片描述

6. 实现登陆功能

如果用户名密码正确,则跳转到新界面,并显示欢迎您:***。用户名与登陆时到输入到内容一致。若用户名或密码错误则弹出对话框提示。

💖 LoginFrame.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class LoginFrame extends JFrame
{
// 创建一个文本输入框,用于输入用户名private JTextField usernameField;
// 创建一个密码输入框,用于输入密码private JPasswordField passwordField;
// 创建一个登录按钮private JButton loginButton;// 构造函数,初始化窗口public LoginFrame(){// 设置窗口标题setTitle("登录界面");// 设置窗口大小setSize(800, 300);// 设置默认关闭操作,当窗口关闭时退出程序setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置布局为网格布局,3行2列setLayout(new GridLayout(3, 2));// 添加一个标签,提示用户输入用户名add(new JLabel("用户名:"));// 创建一个文本输入框,用于输入用户名usernameField = new JTextField();// 将文本输入框添加到窗口中add(usernameField);// 添加一个标签,提示用户输入密码add(new JLabel("密码:"));// 创建一个密码输入框,用于输入密码passwordField = new JPasswordField();// 将密码输入框添加到窗口中add(passwordField);// 创建一个登录按钮loginButton = new JButton("登录");// 为登录按钮添加事件监听器loginButton.addActionListener(new ActionListener(){// 重写事件处理方法@Overridepublic void actionPerformed(ActionEvent e){// 获取文本输入框和密码输入框中的内容String username = usernameField.getText();String password = new String(passwordField.getPassword());// 判断用户名和密码是否正确if (username.equals("lighting") && password.equals("123")){// 如果正确,显示欢迎信息,并打开欢迎界面JOptionPane.showMessageDialog(LoginFrame.this, "登录成功");WelcomeFrame welcomeFrame = new WelcomeFrame(username);welcomeFrame.setVisible(true);LoginFrame.this.setVisible(false);} else{// 如果错误,显示错误信息JOptionPane.showMessageDialog(LoginFrame.this, "用户名或密码错误");}}});// 将登录按钮添加到窗口中add(loginButton);}// 主函数,程序的入口点public static void main(String[] args){// 创建LoginFrame类的实例,即创建一个窗口LoginFrame loginFrame = new LoginFrame();// 设置窗口可见loginFrame.setVisible(true);}
}// WelcomeFrame类继承自JFrame,用于显示欢迎信息
class WelcomeFrame extends JFrame
{
// 构造函数,初始化窗口public WelcomeFrame(String username){
// 设置窗口标题setTitle("欢迎界面");
// 设置窗口大小setSize(300, 200);
// 设置默认关闭操作,当窗口关闭时退出程序setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置布局为网格布局,2行1列setLayout(new GridLayout(2, 1));// 添加一个标签,显示欢迎信息add(new JLabel("欢迎 " + username + "!"));// 创建一个退出按钮JButton exitButton = new JButton("退出");// 为退出按钮添加事件监听器exitButton.addActionListener(new ActionListener(){// 重写事件处理方法@Overridepublic void actionPerformed(ActionEvent e){// 当按钮被点击时,退出程序System.exit(0);}});// 将退出按钮添加到窗口中add(exitButton);}
}

💖 运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620349.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指针的深入理解(七)

指针的深入理解(七) 个人主页:大白的编程日记 个人专栏:C语言学习之路 感谢遇见,我们一起学习进步! 文章目录 指针的深入理解(七)前言一.常量字符串指针1.1常量字符串的理解1.2常量…

软考128-上午题-【软件工程】-白盒测试

一、白盒测试(结构测试) 白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。 白盒测试常用的技术是:逻辑覆盖、循环覆盖和基本路径测…

Qt控件---多元素类

文章目录 QListWidget(纵向列表)使用 QTableWidget(表格)使用 QTreeWidget(树形控件)QTreeWidgetItem使用 QListWidget(纵向列表) QListWidget里的每个元素都为 QListWidgetItem 类…

[计算机效率] 时间记录工具:ManicTime

3.24 时间记录工具:ManicTime ManicTime是一款数据收集软件,主要用于记录电脑上各种软件使用所花费的时间以及电脑闲置的时间。用户还可以定制记录某一时间段内的系统活动。 数据收集:ManicTime能够静默运行于后台,自动跟踪并收…

[MySQL]数据库原理8——喵喵期末不挂科

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

解读《算者生存:商业分析的方法与实践》:构建企业经营分析框架的必备指南

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

【Qt 学习笔记】Qt常用控件 | 按钮类控件QPushButton的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 按钮类控件QPushButton的使用及说明 文章编号&#xff1…

Linux数据库自动备份 - 定时任务发到百度云盘、坚果云、邮箱附件

前言 1. 坚果云的webdav云盘最好! (免费账号每月1G上传流量) 2. 不建议数据库备份文件发送到SMTP邮箱,因为对方服务器非常容易当做垃圾邮件处理,而且发信的SMTP账号会被封禁(实测163发到QQ邮箱被封&…

new Ammo.btSoftBodyHelpers() 是 Ammo.js 中的一个构造函数,用于创建软体物体的辅助对象,提供了一些方法来创建软体物体

demo案例 new Ammo.btSoftBodyHelpers() 是 Ammo.js 中的一个构造函数,用于创建软体物体的辅助对象,提供了一些方法来创建软体物体。以下是它的一些重要信息: 入参:通常不需要传入参数。 出参:创建的新的软体辅助对…

SENet模型原理及代码介绍

一.模型简介: SENet的全称叫Squeeze-and-Excitation Networks(挤压-激励网络,简称SENet),于2017年提出,并拿下了当年的ImageNet分类比赛的冠军。ResNet是2015年ImageNet的冠军,2016年ResNeXt&am…

护眼台灯怎么选看哪些指标?细数五款性价比最高的护眼灯

在日常生活中,越来越多的人开始重视眼部保护。除了日常用眼要合理、阅读写作姿势要正确外,良好的用眼环境同样重要。很多人在写作、学习时都会开启台灯来补充光源,优化用眼环境。但如果台灯不护眼,反而可能加剧眼部疲劳、近视等问…

【服务器部署篇】Linux下Jenkins安装和配置

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…