Java Swing JFileChooser和JColorChooser:文件选择器和颜色选择器

本文介绍了在Java Swing中如何使用JFileChooser实现文件选择功能,包括构造方法和常用方法的详细说明,以及通过示例展示如何弹出打开和保存文件的对话框。同时,讲解了JColorChooser类在创建颜色选择器时的应用,包括构造方法和常用方法,并通过代码示例展示了如何显示颜色选择对话框。
摘要由CSDN通过智能技术生成

在开发应用程序时经常需要选择文件和选择颜色的功能。例如,从选择的文件中导入数据,为窗体选择背景颜色等。本节详细介绍 Swing 中文件选择器和颜色选择器的使用。

文件选择器

文件选择器为用户能够操作系统文件提供了桥梁。swing 中使用 JFileChooser 类实现文件选择器,该类常用的构造方法如下。

  • JFileChooser():创建一个指向用户默认目录的 JFileChooser。
  • JFileChooser(File currentDirectory):使用指定 File 作为路径来创建 JFileChooser。
  • JFileChooser(String currentDirectoryPath):创建一个使用指定路径的 JFileChooser。
  • JFileChooser(String currentDirectoryPath, FileSystemView fsv):使用指定的当前目录路径和 FileSystem View 构造一个 JFileChooser。

JFileChooser 类的常用方法如下所示。

  • int showOpenDialog(Component parent):弹出打开文件对话框。
  • int showSaveDialog(Component parent):弹出保存文件对话框。

例 1

编写一个程序允许用户从本地磁盘中选择一个文件,并将选中的文件显示到界面。实现代码如下:

  1. package ch18;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import javax.swing.JButton;
  5. import javax.swing.JFileChooser;
  6. import javax.swing.JFrame;
  7. import javax.swing.JLabel;
  8. import javax.swing.JPanel;
  9. import javax.swing.JTextField;
  10. public class JFileChooserDemo
  11. {
  12. private JLabel label=new JLabel("所选文件路径:");
  13. private JTextField jtf=new JTextField(25);
  14. private JButton button=new JButton("浏览");
  15. public JFileChooserDemo()
  16. {
  17. JFrame jf=new JFrame("文件选择器");
  18. JPanel panel=new JPanel();
  19. panel.add(label);
  20. panel.add(jtf);
  21. panel.add(button);
  22. jf.add(panel);
  23. jf.pack(); //自动调整大小
  24. jf.setVisible(true);
  25. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26. button.addActionListener(new MyActionListener()); //监听按钮事件
  27. }
  28. //Action事件处理
  29. class MyActionListener implements ActionListener
  30. {
  31. @Override
  32. public void actionPerformed(ActionEvent arg0)
  33. {
  34. JFileChooser fc=new JFileChooser("F:\\");
  35. int val=fc.showOpenDialog(null); //文件打开对话框
  36. if(val==fc.APPROVE_OPTION)
  37. {
  38. //正常选择文件
  39. jtf.setText(fc.getSelectedFile().toString());
  40. }
  41. else
  42. {
  43. //未正常选择文件,如选择取消按钮
  44. jtf.setText("未选择文件");
  45. }
  46. }
  47. }
  48. public static void main(String[] args)
  49. {
  50. new JFileChooserDemo();
  51. }
  52. }

在上述程序中使用内部类的形式创建了一个名称为 MyActionListener 的类,该类实现了 ActionListener 接口。其中 showOpenDialog() 方法将返回一个整数,可能取值情况有 3 种:JFileChooser.CANCEL—OPTION、JFileChooser.APPROVE_OPTION 和 JFileChooser.ERROR_OPTION,分别用于表示单击“取消”按钮退出对话框,无文件选取、正常选取文件和发生错误或者对话框已被解除而退出对话框。因此在文本选择器交互结束后,应进行判断是否从对话框中选择了文件,然后根据返回值情况进行处理。

运行程序,单击“浏览”按钮,会弹出选择文件的对话框,如果取消选择,此时会显示未选择文件;否则就会显示选择的文件路径及文件名称,如图 1 所示。


图1 文件选择对话框

使用 JFileChooser 对象调用 showSaveDialog() 方法会显示保存文件对话框,即将“int val=fc.showOpenDialog(null);”语句换成“int val=fc.showSaveDialog(null);”。在保存文件对话框中“保存”按钮对应的常量值是 JFileChooser.APPROVEOPTION,“取消”按钮对应的常量值是JFileChooser.CANCEL OPTION。图 2 所示为文件保存对话框效果。


图2 文件保存对话框

颜色选择器

JColorChooser 类提供一个用于允许用户操作和选择颜色的控制器窗格。该类提供三个级别的 API

  1. 显示有模式颜色选取器对话框并返回用户所选颜色的静态便捷方法。
  2. 创建颜色选取器对话框的静态方法,可以指定当用户单击其中一个对话框按钮时要调用的 ActionListener。
  3. 能直接创建 JColorChooser 窗格的实例(在任何容器中),可以添加 PropertyChange 作为监听器以检测当前“颜色”属性的更改。

颜色选择器的常用构造方法如下。

  • JColorChooser():创建初始颜色为白色的颜色选取器窗格。
  • JColorChooser(Color initialColor):创建具有指定初始颜色的颜色选取器窗格。
  • JColorChooser(ColorSelectionModel model):创建具有指定 ColorSelectionModel 颜色选取器窗格。

一般使用 JColorChooser 类的静态方法 showDialog(Component component,String title,Color initialColor) 创建一个颜色对话框,在隐藏对话框之前一直堵塞进程。其中 component 参数指定对话框所依赖的组件,title 参数指定对话框的标题,initialColor 参数指定对话框返回的初始颜色,即对话框消失后返回的默认值。

JColorChooser 类的其他常用方法如表 1 所示。

方法名称说明
getColor()获取颜色选取器的当前颜色值
getDragEnabled()获取dragEnabled 属性的值
setColor(Color color)将颜色选取器的当前颜色设置为指定颜色
setColor(int c)将颜色选取器的当前颜色设置为指定颜色
setColor(int r,int g,int b)将颜色选取器的当前颜色设置为指定的 RGB 颜色
setDragEnabled(boolean b)设置 dragEnabled 属性,该属性必须为 true 才能启用对 此组件的自动拖动处理(拖放操作的第一部分)

例 2

创建一个示例演示如何使用 JColorChooser 类显示颜色选择器。示例代码非常简单,如下所示。

  1. package ch18;
  2. import java.awt.Color;
  3. import javax.swing.JColorChooser;
  4. import javax.swing.JFrame;
  5. public class JColorChooserDemo
  6. {
  7. public static void main(String[] args)
  8. {
  9. JFrame frame=new JFrame("颜色选择器");
  10. JColorChooser cc=new JColorChooser();
  11. cc.showDialog(frame,"颜色选择器",Color.white);
  12. //JColorChooser.showDialog(frame,"颜色选择器",Color.white);
  13. //设置窗口的关闭动作、标题、大小位置以及可见性等
  14. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. frame.setBounds(100,100,400,200);
  16. frame.setVisible(true);
  17. }
  18. }

使用 JFrame 作为容器,在该容器内显示一个标题是“颜色选择器”、使用白色作为默认色的颜色选择器。运行后的颜色选择器窗口如图 3 所示。


图3 颜色选择器

也可以不创建 JColorChooser 类实例,直接调用其 showDialog() 方法显示颜色选择器。即将如下代码

  1. JFrame frame=new JFrame("颜色选择器");
  2. JColorChooser cc=new JColorChooser();
  3. cc.showDialog(frame,"颜色选择器",Color.white);

换成:

  1. JColorChooser.showDialog(frame,"颜色选择器",Color.white);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值