当前位置: 首页 > ops >正文

GUI实验

 题目:

        编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。

分析:

  1. 导入所需的Java库:程序使用了 javax.swing 包中的一些类来创建图形用户界面。

  2. 创建一个 JFrame 对象:JFrame 是一个窗口容器,用来放置按钮和标签等组件。

  3. 创建一个 JLabel 对象:JLabel 用来显示"你好"和"再见"这两个文本内容。

  4. 创建一个 JButton 对象:JButton 是一个按钮,用来触发切换标签内容的操作。

  5. 设置按钮的 ActionListener:通过为按钮添加 ActionListener,实现在按钮点击时切换标签内容的功能。

  6. 在 ActionListener 中编写逻辑:在 ActionListener 中编写逻辑来实现按钮点击时标签内容的切换。通过控制一个 boolean 变量来确定当前应该显示"你好"还是"再见"。

  7. 将组件添加到 JFrame 中:将创建的标签和按钮添加到 JFrame 中,并设置布局为 null,以便手动设置组件的位置和大小。

  8. 设置 JFrame 可见:最后将 JFrame 设置为可见状态,以显示图形用户界面。

难点分析:

  1. 理解图形用户界面的基本组件:需要对 JFrame、JLabel 和 JButton 等图形用户界面组件有一定的了解,以便正确使用和设置它们。

  2. 了解 ActionListener 接口和事件处理:需要理解 ActionListener 接口以及如何通过为按钮添加 ActionListener 来处理按钮点击事件。在 ActionListener 的 actionPerformed 方法中编写逻辑也需要一些熟悉。

  3. 处理标签文本的切换:需要在 ActionListener 中编写逻辑来切换标签的文本内容。这里使用了一个 boolean 变量来跟踪当前应该显示的文本内容,并根据其值来更新标签的文本。

  4. 设置布局和组件位置:在本示例中,使用了 null 布局,这意味着需要手动设置组件的位置和大小。对于初学者来说,可能需要花一些时间来理解和实践如何正确设置组件的位置。

代码:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class GreetingApp {private static JLabel label;public static void main(String[] args) {JFrame frame = new JFrame("Greeting App");frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);label = new JLabel("你好");label.setBounds(100, 50, 100, 30);frame.add(label);JButton button = new JButton("切换");button.setBounds(100, 100, 100, 30);button.addActionListener(new ActionListener() {boolean isHello = true;@Overridepublic void actionPerformed(ActionEvent e) {if (isHello) {label.setText("再见");isHello = false;} else {label.setText("你好");isHello = true;}}});frame.add(button);frame.setLayout(null);frame.setVisible(true);}
}

结果:

http://www.xdnf.cn/news/7866.html

相关文章:

  • vue3 threejs 物体发光描边
  • Python人工智能算法 模拟退火算法:原理、实现与应用
  • 项目执行中缺乏问题记录和总结,如何改进?
  • [java]数组
  • 7.数据的预测分析及可视化
  • 嵌入式STM32学习——串口USART 2.0(printf重定义及串口发送)
  • Word2Vec模型学习和Word2Vec提取相似文本体验
  • 豪越智能仓储:为消防应急物资管理“上锁”
  • Nginx 强制 HTTPS:提升网站安全性的关键一步
  • Arthas:Java诊断利器实战指南
  • 游戏服务器开发:如何实现客户端与服务端通信
  • 【Unity 如何使用 Mixamo下载免费模型/动画资源】Mixamo 结合在 Unity 中的实现(Animtor动画系统,完整配置以及效果展示)
  • 如何通过小贝加速实现精准网络故障排查
  • 使用 Shadcn UI 构建 Java 桌面应用
  • 六:操作系统虚拟内存之缺页中断
  • PHP:经典编程语言在当代Web开发中的新活力
  • YOLOv4深度解析:从架构创新到工业落地的目标检测里程碑
  • git工具使用
  • 【VxWorks 实时操作系统(RTOS)】常用函数汇总
  • 期刊采编系统安装升级错误
  • 25_05_19Linux实战篇、第一章_01若依前后端部署之路(后端)
  • SpringBoot-SpringBoot源码解读
  • 自动化软件如何确保高可用性和容错性?
  • git中,给分支打标签
  • 第三章 MCU时钟树配置
  • 直线型绝对值位移传感器:精准测量的科技利刃
  • Linux查 ssh端口号和服务状态
  • 故障率预测:基于LSTM的GPU集群硬件健康监测系统(附Prometheus监控模板)
  • 基于 Redis 实现短信验证码登录功能的完整方案
  • matlab实现混沌扩频DCSK的仿真