目录
一、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("改变文本框颜色") {@Overridepublic 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{@Overridepublic void paint(Graphics g) {g.drawImage(image,0,0,null);}}mydraw drawarea=new mydraw();JMenuItem open=new JMenuItem(new AbstractAction("打开") {@Overridepublic 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("另存为") {@Overridepublic 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);}}