news 2026/2/8 5:18:57

Java 综合练习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 综合练习

主界面

//1.召唤主界面
JFrame jFrame = new JFrame();

菜单制作

在菜单中有:JMenuBar、JMenu、JMenuItem三个角色。

JMenuBar:如上图中红色边框

JMenu:如上图蓝色边框

JMenuItem:如上图绿色字体处

其中JMenuBar是整体,一个界面中一般只有一个JMenuBar。

而JMenu是菜单中的选项,可以有多个。

JMenuItem是选项下面的条目,也可以有多个。

代码书写步骤

1,创建JMenuBar对象

2,创建JMenu对象

3,创建JMenuItem对象

4,把JMenuItem添加到JMenu中

5,把JMenu添加到JMenuBar中

6,把整个JMenuBar设置到整个界面中

添加图片

​ ImageIcon:描述图片的类,可以关联计算中任意位置的图片。

​ 但是一般会把图片拷贝到当前项目中。

​ JLabel:用来管理图片,文字的类。

​ 可以用来设置位置,宽高。

界面左上角的点可以看做是坐标的原点,横向的是X轴,纵向的是Y轴。

图片的位置其实取决于图片左上角的点,在坐标中的位置。

如果是(0,0)那么该图片会显示再屏幕的左上角。

步骤

1,取消整个界面的默认居中布局

​ 2,创建ImageIcon对象,并制定图片位置。

​ 3,创建JLabel对象,并把ImageIcon对象放到小括号中。

​ 4,利用JLabel对象设置大小,宽高。

​ 5,将JLabel对象添加到整个界面当中。

事件

  • 事件源: 按钮 图片 窗体...

  • 事件:某些操作

  • 绑定监听:当事件源上发生了某个事件,则执行某段代码

常见的三种事件监听

  • 键盘监听 KeyListener

  • 鼠标监听 MouseListener

  • 动作监听 ActionListener

动作监听

包含:

  • 鼠标左键点击

  • 空格

事件的三种实现方式
  • 定义实现类实现接口

  • 匿名内部类

  • 本类实现接口

本类实现接口
public class MyJFrame extends JFrameimplements ActionListener{ ​ //创建一个按钮对象 JButton jtb1 = new JButton("点我啊"); //创建一个按钮对象 JButton jtb2 = new JButton("再点我啊"); ​ public MyJFrame(){ //设置界面的宽高 this.setSize(603, 680); //设置界面的标题 this.setTitle("拼图单机版 v1.0"); //设置界面置顶 this.setAlwaysOnTop(true); //设置界面居中 this.setLocationRelativeTo(null); //设置关闭模式 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //取消默认的居中放置,只有取消了才会按照XY轴的形式添加组件 this.setLayout(null); ​ ​ //给按钮设置位置和宽高 jtb1.setBounds(0,0,100,50); //给按钮添加事件 jtb1.addActionListener(this); ​ ​ //给按钮设置位置和宽高 jtb2.setBounds(100,0,100,50); jtb2.addActionListener(this); ​ ​ //那按钮添加到整个界面当中 this.getContentPane().add(jtb1); this.getContentPane().add(jtb2); ​ //让整个界面显示出来 this.setVisible(true); } ​ @Override public void actionPerformed(ActionEvent e) { //对当前的按钮进行判断 ​ //获取当前被操作的那个按钮对象 Object source = e.getSource(); ​ if(source == jtb1){ jtb1.setSize(200,200); }else if(source == jtb2){ Random r = new Random(); jtb2.setLocation(r.nextInt(500),r.nextInt(500)); } } }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 8:43:18

SAP化工行业解决方案:以数字化赋能,破解化工企业运营痛点

化工行业作为工业经济的核心支柱,涵盖石油化工、精细化工、涂料、新能源化工等多个细分领域,其生产流程复杂、产业链绵长、合规要求严苛,同时面临着原料价格波动、安全管控难度大、供应链协同不畅、数据割裂等多重挑战。在数字化转型浪潮下&a…

作者头像 李华
网站建设 2026/2/8 7:28:35

compose 让占位图在 `AsyncImage` 中保持居中的写法

要让占位图在 AsyncImage 中保持居中,有几种方法: 1. 使用 contentAlignment 参数(最简单) AsyncImage(model imageUrl,contentDescription "Image",placeholder painterResource(R.drawable.ic_placeholder),cont…

作者头像 李华
网站建设 2026/2/8 10:45:31

基于云计算的微课教学资源共享平台建设_开题报告 springboot和vue_

目录 技术栈选择依据平台架构设计核心功能模块关键技术实现性能优化方案测试部署流程 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 技术栈选择依据 SpringBoot作为后端框架具备快速开发、内嵌服务器和…

作者头像 李华
网站建设 2026/2/8 20:48:38

大模型性能倍增器:MoE架构详解,收藏级教程!

文章介绍了MoE(专家混合)模型,这是一种在保持计算开销不变的情况下增加模型参数规模的技术。MoE通过引入稀疏性,将Transformer中的FFNN改造成多专家网络,包括Router(负责分配任务)和多个Experts…

作者头像 李华
网站建设 2026/2/8 16:25:57

强烈安利! AI论文工具 千笔 VS 灵感ai,本科生写作神器!

随着人工智能技术的迅猛发展,AI辅助写作工具已逐渐成为高校学生完成毕业论文的重要助手。越来越多的本科生开始借助这些工具提升写作效率、优化内容结构,甚至降低查重压力。然而,面对市场上种类繁多、功能各异的AI写作工具,许多学…

作者头像 李华