目录
一、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); } }