首頁 > 軟體

Swing檔案選擇器:JFileChooser的使用

2019-12-10 01:36:08

在程式開發中,我們經常會使用到檔案選擇器來讀取本地檔案或者儲存檔案到原生的一個目錄中。Java Swing的檔案選擇器是JFileChooser,今天小編就來介紹一下它的使用方法。


1

構造方法1:

JFileChooser():建立一個指向使用者預設目錄的 JFileChooser。


構造方法2:

JFileChooser(File currentDirectory):使用指定 File 作為路徑來建立 JFileChooser。


構造方法3:

JFileChooser(String currentDirectoryPath):建立一個使用指定路徑的 JFileChooser。




1

int showOpenDialog(Component parent):彈出開啟檔案對話方塊。int showSaveDialog(Component parent):彈出儲存檔案對話方塊。

1

建立一個表單,表單中有一個瀏覽按鈕,點選這個按鈕會彈出檔案選擇器,選擇檔案後會在文字框和表單中顯示選中檔案的路徑,如果沒有選擇檔案則提示「未」選中檔案

2

宣告要用到的變數,然後範例化它們,並新增這些元件到JFrame表單


3

實現瀏覽按鈕的監聽


4

效果如下:




5

Demo28_JFileChooser?類程式碼如下:public class Demo28_JFileChooser {private JLabel label=new JLabel("所選檔案路徑:");private JLabel label2 = new JLabel("",JLabel.CENTER);? ? private JTextField jtf=new JTextField(25);? ? private JButton button=new JButton("瀏覽");public static void main(String[] args){? ? ? ? new Demo28_JFil
eChooser();? ? }? ? public Demo28_JFileChooser() {? ? JFrame jf=new JFrame("檔案選擇器");? ? ? ? JPanel panel=new JPanel();? ? ? ? panel.add(label);? ? ? ? panel.add(jtf);? ? ? ? panel.add(button);? ? ? ? label2.setFont(new Font("宋體", 1, 25));? ? ? ? jf.add(panel,BorderLayout.NORTH);? ? ? ? jf.add(label2);? ? ? ? SwingUtils.setCenter(jf);//設定表單大小600*800並居中? ? ? ? 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("D:");? ? ? ? ? ? fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);? //可以選擇檔案和檔案夾? ? ? ? ? ? int val=fc.showOpenDialog(null);? ? //檔案開啟對話方塊//? ? ? ? ? int val=fc.showSaveDialog(null);//彈出儲存檔案對話方塊。? ? ? ? ? ? if(val==fc.APPROVE_OPTION){? ? ? ? ? ? ? ? //正常選擇檔案? ? ? ? ? ? ? ? jtf.setText(fc.getSelectedFile().toString());? ? ? ? ? ? ? ? label2.setText("選擇了檔案:【"+fc.getSelectedFile().getAbsolutePath()+"】");? ? ? ? ? ? }else{? ? ? ? ? ? ? ? //未正常選擇檔案,如選擇取消按鈕? ? ? ? ? ? ? ? jtf.setText("未選擇檔案");? ? ? ? ? ? }? ? ? ? }? ? }}
l=new JPanel();? ? ? ? panel.add(label);? ? ? ? panel.add(jtf);? ? ? ? panel.add(button);? ? ? ? label2.setFont(new Font("宋體", 1, 25));? ? ? ? jf.add(panel,BorderLayout.NORTH);? ? ? ? jf.add(label2);? ? ? ? SwingUtils.setCenter(jf);//設定表單大小600*800並居中? ? ? ? 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("D:");? ? ? ? ? ? fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);? //可以選擇檔案和檔案夾? ? ? ? ? ? int val=fc.showOpenDialog(null);? ? //檔案開啟對話方塊//? ? ? ? ? int val=fc.showSaveDialog(null);//彈出儲存檔案對話方塊。? ? ? ? ? ? if(val==fc.APPROVE_OPTION){? ? ? ? ? ? ? ? //正常選擇檔案? ? ? ? ? ? ? ? jtf.setText(fc.getSelectedFile().toString());? ? ? ? ? ? ? ? label2.setText("選擇了檔案:【"+fc.getSelectedFile().getAbsolutePath()+"】");? ? ? ? ? ? }else{? ? ? ? ? ? ? ? //未正常選擇檔案,如選擇取消按鈕? ? ? ? ? ? ? ? jtf.setText("未選擇檔案");? ? ? ? ? ? }? ? ? ? }? ? }}

6

SwingUtils?類程式碼如下:public class SwingUtils {public static void setCenter(JFrame jf) {int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height;?int jframeWidth = 800;int jframeHeight = 600;jf.setBounds((screenWidth/2)-(jframeWi
dth/2), (screenHeight/2)-(jframeHeight/2),?? ? ? ? jframeWidth, jframeHeight);}}

IT145.com E-mail:sddin#qq.com