• JColorChooser 和JFileChooser


    语雀笔记:https://www.yuque.com/huangzhanqi/rhwoir/paaoghdyv0tgksk1icon-default.png?t=N7T8https://www.yuque.com/huangzhanqi/rhwoir/paaoghdyv0tgksk1Java图形化界面: Java图形化界面学习demo与资料 (gitee.com)icon-default.png?t=N7T8https://gitee.com/zhanqi214/java-graphical-interface

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

    JColorChooser

    JColorChooser 用于创建颜色选择器对话框 , 该类的用法非常简单,只需要调用它的静态方法就可以快速生成一个颜色选择对话框:

    1. /*
    2. 参数:
    3. componet:指定当前对话框的父组件
    4. title:当前对话框的名称
    5. initialColor:指定默认选中的颜色
    6. 返回值:
    7. 返回用户选中的颜色
    8. */
    9. public static Color showDialog(Component component, String title,Color initialColor)

    案例:

    使用颜色选择器,完成下图功能:

    点击按钮,改变文本域的背景色

    演示代码:

    1. package swing;
    2. import awt.day01.Utils;
    3. import javax.swing.*;
    4. import java.awt.*;
    5. public class JColorChooserDemo {
    6. JFrame frame = new JFrame("颜色选择器");
    7. JTextArea textArea = new JTextArea("爱我中华", 6, 30);
    8. JButton button = new JButton("改变文本框的本景色");
    9. public void init(){
    10. frame.add(textArea);
    11. frame.add(button, BorderLayout.SOUTH);
    12. button.addActionListener(e -> {
    13. JColorChooser.showDialog(frame, "颜色选择器", Color.yellow);
    14. });
    15. Utils.setJFrame(frame);
    16. }
    17. public static void main(String[] args) {
    18. new JColorChooserDemo().init();
    19. }
    20. }
    JFileChooser

    JFileChooser 的功能与AWT中的 FileDialog 基本相似,也是用于生成"打开文件"、"保存文件 "对话框。与 FileDialog 不同的是 , JFileChooser 无须依赖于本地平台的 GUI , 它由 100%纯 Java 实现 , 在所有平台 上具有完全相同的行为,并可以在所有平台上具有相同的外观风格。

    JFileChooser使用步骤:

    1. 创建JFileChooser对象:
    JFileChooser chooser = new JFileChooser("D:\\a");//指定默认打开的本地磁盘路径
    1. 调用JFileChooser的一系列可选方法,进行初始化
    1. setSelectedFile(File file)/setSelectedFiles(File[] selectedFiles):设定默认选中的文件
    2. setMultiSelectionEnabled(boolean b):设置是否允许多选,默认是单选
    3. setFileSelectionMode(int mode):设置可以选择内容,例如文件、文件夹等,默认只能选择文件
    1. 打开文件对话框
    1. showOpenDialog(Component parent):打开文件加载对话框,并指定父组件
    2. showSaveDialog(Component parent):打开文件保存对话框,并指定父组件
    1. 获取用户选择的结果
    1. File getSelectedFile():获取用户选择的一个文件
    2. File[] getSelectedFiles():获取用户选择的多个文件

    案例:

    使用JFileChooser完成下图效果:

    1. package swing;
    2. import awt.day01.Utils;
    3. import javax.imageio.ImageIO;
    4. import javax.swing.*;
    5. import java.awt.*;
    6. import java.awt.event.ActionEvent;
    7. import java.awt.image.BufferedImage;
    8. import java.io.File;
    9. import java.io.IOException;
    10. public class JFileChooserDemo {
    11. JFrame frame = new JFrame("JFileChooser");
    12. JMenuBar menuBar = new JMenuBar();
    13. JMenu menu = new JMenu("文件");
    14. BufferedImage image;
    15. JFileChooser fileChooser = new JFileChooser(".");
    16. JPanel panel=new JPanel(){
    17. @Override
    18. public void paint(Graphics g) {
    19. g.drawImage(image, 0, 0, null);
    20. }
    21. };
    22. JMenuItem open = new JMenuItem(new AbstractAction("打开") {
    23. @Override
    24. public void actionPerformed(ActionEvent e) {
    25. fileChooser.showOpenDialog(frame);
    26. File file = fileChooser.getSelectedFile();
    27. try {
    28. image = ImageIO.read(file);
    29. panel.repaint();
    30. } catch (IOException ex) {
    31. throw new RuntimeException(ex);
    32. }
    33. }
    34. });
    35. JMenuItem save = new JMenuItem(new AbstractAction("另存为") {
    36. @Override
    37. public void actionPerformed(ActionEvent e) {
    38. fileChooser.showSaveDialog(frame);
    39. fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    40. File file = fileChooser.getSelectedFile();
    41. try {
    42. ImageIO.write(image, "jpeg", new File(file, "a.jpg"));
    43. } catch (IOException ex) {
    44. throw new RuntimeException(ex);
    45. }
    46. }
    47. });
    48. public void init(){
    49. frame.setJMenuBar(menuBar);
    50. frame.add(panel);
    51. panel.setPreferredSize(new Dimension(500,300));
    52. menuBar.add(menu);
    53. menu.add(open);
    54. menu.add(save);
    55. Utils.setJFrame(frame);
    56. }
    57. public static void main(String[] args) {
    58. new JFileChooserDemo().init();
    59. }
    60. }
  • 相关阅读:
    软件测试功能测试全套常见面试题【开放性思维题】面试总结4-3
    云服务器带宽对上传下载速度的影响
    java 字符串初始化=“” 和=null的区别
    Linux--进程概念
    Shell入门
    Logrus 日志框架——自定义日志颜色
    国鑫受邀出席2023松山湖软件和信息服务业高质量发展大会
    JDK安装教程、Eclipse安装教程
    【Django | 开发】分离上线环境与开发环境(多settings配置)
    J2EE——自定义MVC框架的CRUD操作
  • 原文地址:https://blog.csdn.net/m0_73843666/article/details/132884508