swing快速入门(三十一)文件选择器

注释很详细,直接上代码

上一篇

新增内容

1.菜单项按键响应
2. 文件选择器对话框用法
3.绘画板用法
package swing21_30;import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class swing_test_29 {//创建窗口对象JFrame jFrame= new JFrame("测试JFileChooser");//创建文件对话框JFileChooser jFileChooser = new JFileChooser(".");//创建菜单条JMenuBar jMenuBar = new JMenuBar();//创建菜单JMenu jMenu = new JMenu("文件");//创建菜单项JMenuItem open = new JMenuItem(new AbstractAction("打开"){//继承AbstractAction//重写actionPerformed方法@Overridepublic void actionPerformed(ActionEvent e) {//调用showOpenDialog方法jFileChooser.showOpenDialog(jFrame);//获取用户选择的文件File imageFile = jFileChooser.getSelectedFile();try {//读取图片image = ImageIO.read(imageFile);//刷新界面drawArea.repaint();} catch (IOException e1) {//打印异常信息e1.printStackTrace();}}});//另存为菜单项JMenuItem save = new JMenuItem(new AbstractAction("另存为"){//重写actionPerformed方法@Overridepublic void actionPerformed(ActionEvent e) {//设置文件选择模式,模式为单选jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//调用showSaveDialog方法jFileChooser.showSaveDialog(jFrame);//获取用户选择的文件夹File dir = jFileChooser.getSelectedFile();try {//将图片另存为jpg格式ImageIO.write(image,"jpeg",new File(dir,"a.jpg"));} catch (Exception e1) {//打印异常信息e1.printStackTrace();}}});//用来记录用户选择的图片BufferedImage image;//显示图片class MyCanvas extends JPanel{//重写paint方法@Overridepublic void paint(Graphics g) {//绘制图片if (image!=null){//绘制图片g.drawImage(image,0,0,null);}}}//用来显示图片的面板JPanel drawArea = new MyCanvas();//初始化方法public void init(){//设置图片显示区域大小drawArea.setPreferredSize(new Dimension(500,300));//将面板添加到窗口中jFrame.add(drawArea);//组装并设置菜单条jMenu.add(open);jMenu.add(save);jMenuBar.add(jMenu);jFrame.setJMenuBar(jMenuBar);//设置窗口关闭方式jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口大小jFrame.pack();jFrame.setVisible(true);}public static void main(String[] args) {//启动程序new swing_test_29().init();}}

效果演示:

在这里插入图片描述

随意打开一张图片

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

vue2 echarts饼图,双柱图

<template><div><div class"toQ"><el-row><el-col :span"12"><div class"toW"><el-card><div class"data-title"><div class"toE">周杰伦</div></div>&…

Vscode新手安装与使用

安装与版本选择 VS Code 有两个不同的发布渠道&#xff1a;一个是我们经常使用的稳定版&#xff08;Stable&#xff09;&#xff0c;每个月发布一个主版本&#xff1b;另外一个发布渠道叫做 Insiders&#xff0c;每周一到周五 UTC 时间早上6点从最新的代码发布一个版本&#x…

java设计模式学习之【模板方法模式】

文章目录 引言模板方法模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用游戏设计示例代码地址 引言 设想你正在准备一顿晚餐&#xff0c;无论你想做意大利面、披萨还是沙拉&#xff0c;制作过程中都有一些共同的步骤&#xff1a;准备原料、加工食物、摆盘。…

一文搞懂Go GC演进史,讲的太细致了!

最近在和 Go就业训练营 的朋友讨论Go GC的问题&#xff0c;发现了刘丹冰老师总结的内容&#xff0c;写的太好了&#xff0c;和大家分享一下。 我们的讨论和思考也整理到这篇文章中了&#xff0c;希望对你有启发。 垃圾回收(Garbage Collection&#xff0c;简称GC)是编程语言中…

【Vue2+3入门到实战】(13)插槽<slot>详细示例及自定义组件的创建与使用代码示例 详解

目录 一、学习目标1.插槽2.综合案例&#xff1a;商品列表 一、插槽-默认插槽1.作用2.需求3.问题4.插槽的基本语法5.代码示例6.总结 二、插槽-后备内容&#xff08;默认值&#xff09;1.问题2.插槽的后备内容3.语法4.效果5.代码示例 三、插槽-具名插槽1.需求2.具名插槽语法3.v-s…

Hadoop安装笔记2单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

紧接着上一篇博客&#xff1a;Hadoop安装笔记1&#xff1a; Hadoop安装笔记1单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2&#xff1a;离线数据处理-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135…

CUDA驱动深度学习发展 - 技术全解与实战

全面介绍CUDA与pytorch cuda实战 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c;项目管理专业人士&…

MybatisX逆向工程方法

官方文档链接&#xff1a;MybatisX快速开发插件 | MyBatis-Plus (baomidou.com) 使用MybatisX可以快速生成mapper文件&#xff0c;实体类和service及实现 效果 方法&#xff1a;首先下载mybatisX插件 然后创建数据库信息 然后选中表&#xff0c;右键&#xff0c;点击Mybatis…

java Servlet 汽车保养服务平台系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Servlet 汽车保养服务平台系统是一套完善的java web信息管理系统&#xff0c;采用serlvetdaobean mvc模式开发&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数 据库&#xff0c;系统主要采用B/S模式开发。开发环境为…

应用在网络摄像机领域中的国产音频ADC芯片

IPC&#xff1a;其实叫“网络摄像机”&#xff0c;是IP Camera的简称。它是在前一代模拟摄像机的基础上&#xff0c;集成了编码模块后的摄像机。它和模拟摄像机的区别&#xff0c;就是在新增的“编码模块”上。模拟摄像机&#xff0c;顾名思义&#xff0c;输出的是模拟视频信号…

专做真人转动漫视频AI——DomoAI(附详细教程)

家人们&#xff01;今天给大家推荐一款近期火爆外网的真人视频转动漫的AI工具——DomoAI&#xff0c;只需提供一张图片&#xff0c;或者一段视频&#xff0c;输入提示词&#xff0c;并指定动漫风格&#xff0c;即可将照片或者视频动漫化&#xff0c;而且生成的画面效果极致丝滑…

演员-评论家算法:多智能体强化学习核心框架

演员-评论家算法 演员-评论家算法&#xff1a;策略梯度算法 DQN 算法演员-评论家的协作流程演员&#xff1a;策略梯度算法计算智能体策略预期奖励的梯度公式分解时间流程拆解 通过采样方法近似估计梯度公式拆解时间流程拆解 改进策略设置基线&#xff1a;适用于减小方差、加速…

使用NTC负温度系数热敏电阻控制温度

鱼缸原来的加热棒使用的是NTC负温度系数的热敏电阻测温&#xff0c;负温度系数是指随着温度的升高&#xff0c;电阻是不断按照指数形式减小的&#xff0c;在22度的情况下实测电阻是10K多&#xff0c;可以断定使用了10K&#xff08;25度下是10K&#xff09;的电阻&#xff0c;为…

推荐几款常用的项目管理工具

项目管理软件可以在帮助项目经理和团队记录、跟踪和分析项目进展。它的主要功能有&#xff1a; 1、任务管理&#xff1a;制定项目计划&#xff0c;并将任务分配给项目成员&#xff0c;监控任务的进度和完成情况。 2、沟通与协作&#xff1a;帮助项目团队成员建立一个有效的沟…

postman使用-04响应

文章目录 响应响应界面说明Pretty&#xff1a;格式化显示&#xff0c;以便查看Raw&#xff1a;不进行任何处理&#xff0c;显示响应数据的原始格式Preview&#xff1a;预览响应体&#xff0c;会自动换行&#xff0c;不会格式化&#xff08;有时候是数据&#xff0c;有时候是页面…

哪种猫粮比较好?性价比高的主食冻干品牌排行榜前五

不知道从什么时候开始掀起一股冻干喂养风&#xff0c;各种查资料阅读文献发现冻干喂养是最适合忙碌地打工人的“生骨肉喂养”替代版&#xff0c;是最符合猫咪饮食天性的一种。很多养猫人纷纷开始冻干喂养&#xff0c;但对于主食冻干猫粮的选择就让很多猫奴犯了难在电商平台随便…

configure: error: no acceptable C compiler found in $PATH解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一&#xff1a;没有添加 自动转化的配置&#xff0c;且domain中的属性名称和数据库的字段名称一致测试二&#xff1a;没有添加自动转化配置i&#xff0c;domain属性名userPassword和数据…

【WordPress插件】热门关键词推荐v1.3.0 Pro开心版

介绍&#xff1a; WordPress插件-WBOLT热门关键词推荐插件&#xff08;Smart Keywords Tool&#xff09;是一款集即时关键词推荐、关键词选词工具及文章智能标签功能于一体的WordPress网站SEO优化插件。 智能推荐&#xff1a; 热门关键词推荐引擎-支持360搜索、Bing、谷歌&a…

新手必看:Python中的字符串格式化入门指南

在Python中&#xff0c;格式化字符串输出是一项非常常见的任务&#xff0c;用于将变量、表达式和文本组合成一个可读性强的字符串。Python提供了多种方式来实现字符串格式化&#xff0c;每种方式都有其独特的优势和用法。本篇文章将详细介绍Python中格式化字符串输出的几种方式…