در این قسمت تیم کدگیت را با آموزش JFileChooser در جاوا همراهی کنید. در ابتدای این آموزش طبق روال آموزشهای گذشته ابتدا کلاس JFileChooser را معرفی کرده و کاربرد این کلاس را توضیح میدهیم. سپس به معرفی متدهای پرکاربرد این کلاس میپردازیم. در انتها یک مثال واقعی را با استفاده از کلاس JFileChooser، پیاده سازی خواهیم کرد. همچنین پیشنهاد میکنیم قبل از مطالعه این جلسه، آموزشهای زیر را بررسی کنید:
JFileChooser در جاوا
کلاس JFileChooser یک دیالوگ برای انتخاب فایل یا فولدر برای کاربر نشان میدهد. کاربر در این دیالوگ میتواند فایل با فرمت خاصی را به تنهایی انتخاب کند یا تمامی فایلها را دیده و آنهایی که مورد نظر است را انتخاب کند. این کلاس معمولا زمانی استفاده میشود که بخواهیم برای انجام فعالیتی از کاربر فایلی را دریافت کنیم. نمونهای از JFileChooser در تصویر زیر آورده شده است.
برخی از متدهای کلاس JFileChooser به صورت زیر میباشد:
- ()JFileChooser : متد Constructor است و یک پنجره JFileChooser میسازد. این پنجره به Default Directory کاربر اشاره میکند.
- (JFileChooser(File currentDirectory : متد Constructor است و یک پنجره JFileChooser میسازد. این پنجره به آدرس فایل ورودی (currentDirectory) اشاره دارد.
- (JFileChooser(String currentDirectoryPath : متد Constructor است و یک پنجره JFileChooser میسازد. این پنجره به آدرس ورودی (currentDirectoryPath) اشاره دارد.
مثال JFileChooser در جاوا
در این قسمت با بهرهگیری از آموزشهای گذشته، مثالی را با کمک JMenuBar و JTextArea پیاده سازی خواهیم کرد. در این مثال در پنجره Frame یک منو برای انتخاب فایل ایجاد کرده و کاربر پس از انتخاب فایل، محتوای آن را درون JTextArea میبیند. کد این مثال به صورت زیر است:
public class FileChooserExample extends JFrame implements ActionListener { JMenuBar mb; JMenu file; JMenuItem open; JTextArea ta; FileChooserExample() { open = new JMenuItem("Open File"); open.addActionListener(this); file = new JMenu("File"); file.add(open); mb = new JMenuBar(); mb.setBounds(0, 0, 800, 20); mb.add(file); ta = new JTextArea(800, 800); ta.setBounds(0, 20, 800, 800); add(mb); add(ta); } public void actionPerformed(ActionEvent e) { if (e.getSource() == open) { JFileChooser fc = new JFileChooser(); int i = fc.showOpenDialog(this); if (i == JFileChooser.APPROVE_OPTION) { File f = fc.getSelectedFile(); String filepath = f.getPath(); try { BufferedReader br = new BufferedReader(new FileReader(filepath)); String s1 = "", s2 = ""; while ((s1 = br.readLine()) != null) { s2 += s1 + "\n"; } ta.setText(s2); br.close(); } catch (Exception ex) { ex.printStackTrace(); } } } } }
همانطور که در کد بالا میبینید در متد actionPerformed کلاس JFileChooser را صدا زدهایم. متد showOpenDialog در این کلاس برای نمایش دیالوگ کلاس JFileChooser است. در ادامه کد وقتی کاربر فایلی را انتخاب کند ما آن فایل را خوانده و محتوای آن را درون JTextArea نمایش میدهیم.
تست مثال JFileChooser در جاوا
برای تست کدهای بالا،کد Main زیر را بزنید:
public static void main(String[] args) { FileChooserExample om = new FileChooserExample(); om.setSize(500, 500); om.setLayout(null); om.setVisible(true); om.setDefaultCloseOperation(EXIT_ON_CLOSE); }