File & Directory

Dengan menggunakan library java.io, kita dapat membuat program kita membaca file dengan direktori yang diberikan. Selain itu, kita juga dapat mengedit dan menyimpan suatu file yang telah dibuat atau dimodifikasi. Untuk menunjukkan ini, berikut adalah program text editor yang diambil dari geeksforgeeks yang menggunakan Java Swing untuk membuat GUI dari program text editor ini. Program ini menggunakan JFileChooser yang dapat diakses menggunakan Java Swing untuk menangani file, terutama untuk membuka dan menyimpan file. 

Program ini menggunakan satu kelas dengan tiga method:

1. Method editor membuat GUI (termasuk frame, menu bar, dan menu item) dan ActionListener untuk program text editor ini.

2. Method actionPerformed memberitahukan program apa yang akan terjadi setelah user mengklik salah satu dari menu item dari program text editor ini. Program akan melakukan file handling setelah menu item "open" untuk membuka file atau "save" untuk menyimpan file diklik.

3. Method main adalah main method yang memanggil method editor.

Source Code:

import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.plaf.metal.*;
import javax.swing.text.*;
class editor extends JFrame implements ActionListener{
JTextArea t;
JFrame f;
editor(){
f = new JFrame("editor");
try{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
MetalLookAndFeel.setCurrentTheme(new OceanTheme());
}
catch (Exception e){
}
t = new JTextArea();
JMenuBar mb = new JMenuBar();
JMenu m1 = new JMenu("File");
JMenuItem mi1 = new JMenuItem("New");
JMenuItem mi2 = new JMenuItem("Open");
JMenuItem mi3 = new JMenuItem("Save");
JMenuItem mi9= new JMenuItem("Print");
mi1.addActionListener(this);
mi2.addActionListener(this);
mi3.addActionListener(this);
mi9.addActionListener(this);
m1.add(mi1);
m1.add(mi2);
m1.add(mi3);
m1.add(mi9);
JMenu m2 = new JMenu("Edit");
JMenuItem mi4 = new JMenuItem("Cut");
JMenuItem mi5 = new JMenuItem("Copy");
JMenuItem mi6 = new JMenuItem("Paste");
mi4.addActionListener(this);
mi5.addActionListener(this);
mi6.addActionListener(this);
m2.add(mi4);
m2.add(mi5);
m2.add(mi6);
JMenuItem mc = new JMenuItem("Close");
mc.addActionListener(this);
mb.add(m1);
mb.add(m2);
mb.add(mc);
f.setJMenuBar(mb);
f.add(t);
f.setSize(500, 500);
f.show();
}
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if (s.equals("Cut")) {
t.cut();
} else if (s.equals("Copy")) {
t.copy();
} else if (s.equals("Paste")) {
t.paste();
} else if (s.equals("Save")) {
JFileChooser j = new JFileChooser("f:");
int r = j.showSaveDialog(null);
if (r == JFileChooser.APPROVE_OPTION) {
File fi = new File(j.getSelectedFile().getAbsolutePath());
try {
FileWriter wr = new FileWriter(fi, false);
BufferedWriter w = new BufferedWriter(wr);
w.write(t.getText());
w.flush();
w.close();
} catch (Exception evt) {
JOptionPane.showMessageDialog(f, evt.getMessage());
}
} else JOptionPane.showMessageDialog(f, "The user cancelled the operation");
} else if (s.equals("print")) {
try {
t.print();
} catch (Exception evt) {
JOptionPane.showMessageDialog(f, evt.getMessage());
}
} else if (s.equals("Open")) {
JFileChooser j = new JFileChooser("f:");
int r = j.showOpenDialog(null);
if (r == JFileChooser.APPROVE_OPTION) {
File fi = new File(j.getSelectedFile().getAbsolutePath());
try {
String s1 = "", sl = "";
FileReader fr = new FileReader(fi);
BufferedReader br = new BufferedReader(fr);
sl = br.readLine();
while ((s1 = br.readLine()) != null) {
sl = sl + "\n" + s1;
}
t.setText(sl);
} catch (Exception evt) {
JOptionPane.showMessageDialog(f, evt.getMessage());
}
} else {
JOptionPane.showMessageDialog(f, "the user cancelled the operation"); // If the user cancelled the operation
}
} else if (s.equals("New")) {
t.setText("");
} else if (s.equals("Close")) {
f.setVisible(false);
}
}
public static void main(String[] args)
{
editor e = new editor();
}
}
view raw gistfile1.txt hosted with ❤ by GitHub

Output:

OpenDialog saat membuka suatu text


Isi dari test.txt setelah dibuka


Text ini dapat diedit seperti saat menggunakan Notepad


SaveDialog saat ingin menyimpan text


File akan tersimpan dan dapat dibuka menggunakan aplikasi lainnya seperti Notepad



Comments

Popular posts from this blog

Game Pong Java