Java图形化界面---

目录

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

    }
}

猜你喜欢

转载自blog.csdn.net/gaoqiandr/article/details/128697195