Komponen Swing : Menggunakan JFileChooser dan Menampilkan Isi File di JTextArea

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Pada tutorial ini kita akan melihat cara penggunaan JFileChooser pada Swing di Eclipse

Pertama-tama kita buat terlebih dahulu tombol lengkap dengan eventhandlernya seperti berikut :

Screenshot from 2014-06-17 15:38:14

Kodenya tampak seperti berikut :

[code language=”java”]
package com.eclipseprogramming.UploadFile;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea;
import javax.swing.JButton;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class UploadForm extends JFrame {

private JPanel contentPane;
private JFileChooser fileChooser;
private BufferedReader br;
private File file;
int returnVal;
String currentLine;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UploadForm frame = new UploadForm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public UploadForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 529, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JTextArea txtrPenampil = new JTextArea();
txtrPenampil.setText("Penampil");
txtrPenampil.setBounds(26, 17, 353, 239);
contentPane.add(txtrPenampil);

JButton btnPilihFile = new JButton("PILIH FILE");
btnPilihFile.setBounds(387, 12, 117, 25);
contentPane.add(btnPilihFile);

}
}

[/code]

Sekarang mari kita berikan komponen JFileChooser seperti berikut :

[code language=”java”]

btnPilihFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

 fileChooser = new JFileChooser();

[/code]

Agar JFileChooser muncul saat button diklik berikan kode berikut :

[code language=”java”]

if(e.getSource() == btnPilihFile) {

returnVal = fileChooser.showOpenDialog(null);

[/code]

Untuk menangkap nilai keluaran ketika seseorang memilih file kita pasangkan kode seperti ini

[code language=”java”]
if(returnVal == JFileChooser.APPROVE_OPTION) { file = fileChooser.getSelectedFile();

[/code]

Selanjutnya kita baca file tersebut dan tempatkan di buffered

[code language=”java”]

try { br = new BufferedReader(new FileReader(file));

[/code]

Tampilkan di JTextArea :

[code language=”java”]

txtrPenampil.read(br, null);

[/code]

Jangan lupa tutup Buffer dengan kode berikut :

[code language=”java”]

br.close();

[/code]

Terakhir tutup blok dengan catch untuk menangkap eksepsi jika terjadi

[code language=”java”] } catch (Exception error) { error.printStackTrace(); } } } } }); [/code]

Seluruh kode akan tampak seperti berikut :

[code language=”java”]
package com.eclipseprogramming.UploadFile;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea;
import javax.swing.JButton;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class UploadForm extends JFrame {

private JPanel contentPane;
private JFileChooser fileChooser;
private BufferedReader br;
private File file;
int returnVal;
String currentLine;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UploadForm frame = new UploadForm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public UploadForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 529, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JTextArea txtrPenampil = new JTextArea();
txtrPenampil.setText("Penampil");
txtrPenampil.setBounds(26, 17, 353, 239);
contentPane.add(txtrPenampil);

JButton btnPilihFile = new JButton("PILIH FILE");

btnPilihFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

 fileChooser = new JFileChooser();

//Jika event yang terjadi berasal dari tombol btnPilihFile
if(e.getSource() == btnPilihFile) {

//Membuat FileChooser visible di layar
returnVal = fileChooser.showOpenDialog(null);

//Jika Seseorang Memilih File
if(returnVal == JFileChooser.APPROVE_OPTION) {

//Jika File yang dipilih sama dengan file yang kita tentukan
file = fileChooser.getSelectedFile();

//Membaca file
try {
br = new BufferedReader(new FileReader(file));
txtrPenampil.read(br, null);
br.close();

} catch (Exception error) {
error.printStackTrace();

}

}

}
}
});

btnPilihFile.setBounds(387, 12, 117, 25);
contentPane.add(btnPilihFile);

}
}

[/code]

Jika kita jalankan program akan tampak seperti berikut :

Screenshot from 2014-06-17 15:40:12

 

Saat kita klik tombol maka akan muncul seperti berikut

Screenshot from 2014-06-17 15:40:20

Ketika kita pilih OK, maka isi file akan ditampilkan seperti berikut :

Screenshot from 2014-06-17 15:40:32

Selamat mencoba (reza@rumahilmu.or.id)

About Reza Ervani 426 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.