Java图形化界面---

news2024/11/15 18:00:47

目录

一、JColorChooser

(1)JColorChooser的介绍

(2)JColorChooser案列

二、JFileChooser

(1)JFileChooser的介绍

(2)JFileChooser使用步骤

(3)JFileChooser案例 


Swing提供了JColorChooser和JFileChooser这两种对话框,可以很方便的完成颜色的选择和本地文件的选择。

一、JColorChooser

(1)JColorChooser的介绍

JColorChooser用于创建颜色选择器对话框,该类的用法非常简单,
只需要调用它的静态方法就可以快速生成一个颜色选择对话框:
public static Color showDialog(Compoment c,String t,Color c)
 c:指定当前对话框的父组件
 t:当前对话框的名称
 c:指定默认选中的颜色

(2)JColorChooser案列

 案列:制作如图界面

 

public class exer1 {
    JFrame s=new JFrame("练习");
    JTextArea text=new JTextArea(10,40);
    //声明按钮
    JButton b=new JButton(new AbstractAction("改变文本框颜色") {
        @Override
        public void actionPerformed(ActionEvent e) {
            Color res=JColorChooser.showDialog(s,"颜色选择器",Color.white);
            //修改文本框背景
            text.setBackground(res);
        }
    });
    public void init(){
       //组装
        s.add(b,BorderLayout.SOUTH);
        s.add(text);

        s.pack();
        s.setDefaultCloseOperation(3);
        s.setVisible(true);
    }
}

二、JFileChooser

(1)JFileChooser的介绍

前面我们在AWT编=编程中学到了FileDialog,JFileChooser与FileDialog基本相似,也是用于打开文件,保存文件对话框。但是JFileChooser无须依赖于本地平台的GUI,它是100%纯Java实现,在所有平台上具有完全相同的行为,并可以在所有平台上具有相同的外观风格。

(2)JFileChooser使用步骤

JFileChooser使用步骤:
(1)创建JFileChooser对象:
JFileChooser chooser=new JFileChooser("D:\\a");//指定默认打开的本地磁盘路径

(2)调用方法,进行初始化
setSelectedFile(File file);                设定默认选中的文件
setMultiSelectionEnabled(boolean b)        设置是否允许多选,默认是单选
setFileSelectionMode(int mode)             设置可以选择内容,例如文件,文件夹等,默认只能选择文件

(3)打开文件对话框
showOpenDialog(Component parent);          打开文件加载对话框,并指定父组件
showSaveDialog(Component parent);          打开文件保存对话框,并指定父组件
(4)获取用户选择的结果
File getSelectedFile()                     获取用户选择的一个文件
File[] getSelectedFiles()                  获取用户选择的多个文件

(3)JFileChooser案例 

制作如图所示的界面,点击打开选择文件,则图片可以在空白区域展现,点击另存为可使得已打开文件保存

public class exer1 {

    JFrame s=new JFrame("练习");
    BufferedImage image;
    JMenuBar menuBar=new JMenuBar();
    JMenu wenjian=new JMenu("文件");
    class mydraw extends JPanel{
        @Override
        public void paint(Graphics g) {
            g.drawImage(image,0,0,null);

        }
    }
    mydraw drawarea=new mydraw();
    JMenuItem open=new JMenuItem(new AbstractAction("打开") {
        @Override
        public void actionPerformed(ActionEvent e) {
            //显示一个文件选择器
            JFileChooser fileChooser=new JFileChooser("C:\\");
            fileChooser.showOpenDialog(s);

            //获取用户选择的文件
            File file=fileChooser.getSelectedFile();

            try {
                image=ImageIO.read(file);
                drawarea.repaint();
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    });
    //另存为
    JMenuItem save=new JMenuItem(new AbstractAction("另存为") {
        @Override
        public void actionPerformed(ActionEvent e) {
            //显示文本选择器
            JFileChooser chooser=new JFileChooser("C:\\");
            chooser.showSaveDialog(s);
            //获取用户选择的文件的保存的文件路径
            File file=chooser.getSelectedFile();
            //注意是将已经打开的文件保存
            try {
                ImageIO.write(image,"jpeg",file);
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    });
    public void init(){
        wenjian.add(open);
        wenjian.add(save);
        menuBar.add(wenjian);
        s.setJMenuBar(menuBar);
        //添加画布别忘了
        drawarea.setPreferredSize(new Dimension(700,600));
        s.add(drawarea);
        s.setDefaultCloseOperation(3);
        s.pack();
        s.setVisible(true);

    }
}

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

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

相关文章

【云原生进阶之容器】第四章Operator原理4.4节--Operator深入实践

1 Operator 深入实践 在本节中,我们将重点关注 etcd-cluster-operator,用于管理 Kubernetes 内部的 etcd。简单地说,etcd 是一个分布式键值数据存储系统,它有能力管理自己的稳定性,只要: 每个 etcd 实例都有一个用于计算、网络和存储的独立故障域。每个 etcd 实例都有一个…

读 | Software Architecture Patterns

个人博客 Software Architecture Patterns》是 Mark Richards 2015 年出的一本小册子,对常用的架构模式进行了一个简单梳理,书中列了 5 种: 分层(Layered)事件驱动(Event-Driven)微内核&#…

HTML的常见标签

什么是 HTML? HTML 是英文 Hyper Text Markup Language(超文本标记语言)的缩写,是一种用于创建网页的标准标记语言。 什么是HTML 标签? HTML 文档和 HTML 元素是通过 HTML 标签进行标记的 HTML 标签是由尖括号包围的关键词&am…

【阶段四】Python深度学习07篇:深度学习项目实战:循环神经网络的原理和结构

本篇的思维导图: 循环神经网络 循环神经网络,就是专门用于处理语言、文字、时序这类特征之间存在“次序”的问题。这是一种循环的、带“记忆”功能的神经网络,这种网络针对序列性问题有其优势。 循环神经网络的原理和结构 序列数据的概念 序列数据,是其特征的先后…

电路方案分析(十六)高效备用电源设计方案

高效备用电源设计方案 备用电源: 备用电源是一种在主电源发生故障时为负载提供紧急电源的电气系统。适当的备用电源通过提供存储在备用电容器或电池中的能量,提供即时保护,防止主电源中断而产生故障。这种备份电源通常用于保护硬件&#xf…

表单<form>

创建表单 <form> 标签用于创建供用户输入的 HTML 表单。 <form>标签的action属性的值指定了表单提交到服务器的地址。 <form> 元素包含一个或多个如下的表单元素&#xff1a; <input> <textarea> <button> <select> <option&g…

JAVA设计模式--行为型模式--职责链模式

1.责任链模式&#xff08;Chain of Responsibility Pattern&#xff09; 1.1介绍 为请求创建了一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中&#xff0c;通常每个接收者都包含对…

C语言文件操作(一文带你吃透文件各种操作)

文章目录 一、为什么要使用文件 二、什么是文件 2、1 程序文件 2、2 数据文件 2、3 文件名 三、文件的打开关闭及读写操作 3、1 文件指针 3、2 文件的打开和关闭操作 3、3 文件的读写函数详解 3、3、1 fgetc、fputc函数详解 3、3、2 fgets、fputs函数详解 3、3、3 fscanf、fpri…

神经网络介绍-激活函数、参数初始化、模型的搭建

目录1、深度学习了解1.1 深度学习简介1.2 神经网络2、神经网络的工作流程2.1 激活函数2.1.1 Sigmoid/Logistics函数2.1.2 tanh&#xff08;双曲正切曲线&#xff09;2.1.3 RELU2.1.4 Leaky Relu2.1.5 SoftMax2.1.6 其他激活函数2.2 参数初始化2.2.1 随机初始化2.2.2 标准初始化…

【博客585】ipvs场景下dummy网卡的作用

linux ipvs模式下dummy网卡的作用 1、场景&#xff1a; 在使用ipvs来实现vip的负载均衡的时候&#xff0c;有时我们会在linux中创建一块dummy网卡&#xff0c;并在网卡上绑上vip 2、场景示例&#xff1a;k8s kube-proxy组件的ipvs模式 kube-proxy在ipvs模式下生成了一块kub…

iperf工具源码下载、编译、编译报错解决、以及测试网络带宽

1、iperf源码下载 (1)源码下载地址&#xff1a;https://iperf.fr/iperf-download.php; (2)有的版本源码下载下来并不能直接编译成功&#xff0c;可能会报缺少头文件或者编译选项的错误&#xff0c;要么去解决这些错误&#xff0c;要么换个版本再试一下&#xff1b; (3)在我的环…

Linux学习【教程+实操】【超基础】

链接:资料提取码&#xff1a;6klp 今日内容Linux简介Linux安装网卡设置安装SSH连接工具Linux和Windows目录结构对比Linux常用命令Linux命令初体验文件目录操作命令拷贝移动命令打包压缩命令文本编辑命令查找命令Linux软件安装软件安装方式安装jdk&#xff08;采用二进制发布包…

mysql索引字段设计

表字段数量与row大小限制可以参考官方文档 https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html#column-count-limits 复合索引 参考&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html 数量限制 一个复合索引最多可以包含16个列&…

微信小程序--自定义组件

组件的创建与引用 1.创建组件 在项目的根目录中&#xff0c;鼠标右键&#xff0c;创建 components -> test 文件夹 在新建的components -> test文件夹上&#xff0c;鼠标右键&#xff0c;点击“新建Component" 键入组件的名称之后回车&#xff0c;会自动生成组件对…

C语言进阶(9)——C语言文件操作

本章重点 为什么使用文件什么是文件文件的打开和关闭文件的顺序读写文件的随机读写文本文件和二进制文件文件读取结束的判定文件缓冲区 文章目录本章重点1.为什么使用文件2.什么是文件2.1程序文件2.2数据文件2.3文件名3.文件打开和关闭3.1 文件指针3.2文件的打开和关闭4. 文件…

【蓝桥杯嵌入式】第十一届蓝桥杯嵌入式省赛(第二场)程序设计试题及其题解

题目再现 题目分析 通过阅读本届试题可知&#xff0c;其功能比较单一&#xff0c;除了试题中常客——LED、LCD、按键三巨头外&#xff0c;还包含了定时器的PWM以及ADC读取这两个部分&#xff0c;考察的重点在于对定时器产生PWM的应用以及如何修改PWM的占空比&#xff0c;完全消…

MPU-6000(6050)介绍

MPU-6000&#xff08;6050&#xff09;简介MPU-60X0是全球首例9 轴运动处理传感器。它集成了3 轴MEMS陀螺仪&#xff0c;3 轴MEMS加速度计&#xff0c;以及一个可扩展的数字运动处理器DMP&#xff08;DigitalMotion Processor&#xff09;&#xff0c;可用I2C接口连接一个数字传…

react PureComponent

这个 其实和我之前写的文章react组件优化&#xff0c;当父组件数据变化与子组件无关时&#xff0c;控制子组件不重新渲染实现的东西是一样的 只是用了一种更简洁的方式 我们还是重新来一次 创建一个react项目 然后 创建一个子组件 我这里就直接叫 subset.jsx 参考代码如下 i…

ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION

核心 Adam: 一种基低阶矩的自适应估计的随机目标函数的一阶梯度优化算法&#xff0c;该方法实现简单**&#xff0c;计算效率高&#xff0c;内存需求很少**&#xff0c;对梯度的对角线重新缩放不变&#xff0c;并且非常适合于在数据或参数方面较大问题&#xff0c;该方法也适用…

ADI demo PS工程的编译-以adrv9371x_zc706为例子

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 ADI demo PS工程的编译-以adrv9371x_zc706为例子前言VITIS建工程总结前言 接《ADI demo PL工程的编译-以adrv9371x_zc706为例子之使用Cygwin》这篇。导出XSA文件&#xff0c…