Swing學習20:Java Swing JFileChooser和JColorChooser

在開發應用程序時經常需要選擇文件和選擇顏色的功能。例如,從選擇的文件中導入數據,爲窗體選擇背景顏色等。本節詳細介紹 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
編寫一個程序允許用戶從本地磁盤中選擇一個文件,並將選中的文件顯示到界面。實現代碼如下:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class JFileChooserDemo
{
    private JLabel label=new JLabel("所選文件路徑:");
    private JTextField jtf=new JTextField(25);
    private JButton button=new JButton("瀏覽");
    public JFileChooserDemo()
    {
        JFrame jf=new JFrame("文件選擇器");
        JPanel panel=new JPanel();
        panel.add(label);
        panel.add(jtf);
        panel.add(button);
        jf.add(panel);
        jf.pack();    //自動調整大小
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        button.addActionListener(new MyActionListener());    //監聽按鈕事件
    }
    //Action事件處理
    class MyActionListener implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent arg0)
        {
            JFileChooser fc=new JFileChooser("F:\\");
            int val=fc.showOpenDialog(null);    //文件打開對話框
            if(val==fc.APPROVE_OPTION)
            {
                //正常選擇文件
                jtf.setText(fc.getSelectedFile().toString());
            }
            else
            {
                //未正常選擇文件,如選擇取消按鈕
                jtf.setText("未選擇文件");
            }
        }
    }
    public static void main(String[] args)
    {
        new JFileChooserDemo();
    }
}

在上述程序中使用內部類的形式創建了一個名稱爲 MyActionListener 的類,該類實現了 ActionListener 接口。其中 showOpenDialog() 方法將返回一個整數,可能取值情況有 3 種:JFileChooser.CANCEL—OPTION、JFileChooser.APPROVE_OPTION 和 JFileChooser.ERROR_OPTION,分別用於表示單擊“取消”按鈕退出對話框,無文件選取、正常選取文件和發生錯誤或者對話框已被解除而退出對話框。因此在文本選擇器交互結束後,應進行判斷是否從對話框中選擇了文件,然後根據返回值情況進行處理。

運行程序,單擊“瀏覽”按鈕,會彈出選擇文件的對話框,如果取消選擇,此時會顯示未選擇文件;否則就會顯示選擇的文件路徑及文件名稱,如圖 1 所示。
在這裏插入圖片描述
使用 JFileChooser 對象調用 showSaveDialog() 方法會顯示保存文件對話框,即將“int val=fc.showOpenDialog(null);”語句換成“int val=fc.showSaveDialog(null);”。在保存文件對話框中“保存”按鈕對應的常量值是 JFileChooser.APPROVE_OPTION,“取消”按鈕對應的常量值是JFileChooser.CANCEL_ OPTION。圖 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 所示。
在這裏插入圖片描述
例 2
創建一個示例演示如何使用 JColorChooser 類顯示顏色選擇器。示例代碼非常簡單,如下所示。

import java.awt.Color;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
public class JColorChooserDemo
{
    public static void main(String[] args)
    {
        JFrame frame=new JFrame("顏色選擇器");
        JColorChooser cc=new JColorChooser();
        cc.showDialog(frame,"顏色選擇器",Color.white);
        //JColorChooser.showDialog(frame,"顏色選擇器",Color.white);
        //設置窗口的關閉動作、標題、大小位置以及可見性等
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(100,100,400,200);
        frame.setVisible(true);
    }
}

使用 JFrame 作爲容器,在該容器內顯示一個標題是“顏色選擇器”、使用白色作爲默認色的顏色選擇器。運行後的顏色選擇器窗口如圖 3 所示。
在這裏插入圖片描述
也可以不創建 JColorChooser 類實例,直接調用其 showDialog() 方法顯示顏色選擇器。即將如下代碼

JFrame frame=new JFrame("顏色選擇器");
JColorChooser cc=new JColorChooser();
cc.showDialog(frame,"顏色選擇器",Color.white);

換成:

JColorChooser.showDialog(frame,"顏色選擇器",Color.white);

謝謝觀看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章