import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class textedit extends JFrame {
JTextField fname = new JTextField("");
JLabel fnamelabel = new JLabel("File name:");
JButton openbutton = new JButton("Open");
JButton savebutton = new JButton("Save");
JButton tokencbutton = new JButton("Token Count");
JTextArea text = new JTextArea("");
public textedit() {
super("Text Editor");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(500,400);
this.getContentPane().setLayout(null);
this.getContentPane().add(fnamelabel);
fnamelabel.setBounds(0,0,80,30);
this.getContentPane().add(fname);
fname.setBounds(80,0,150,30);
this.getContentPane().add(openbutton);
openbutton.setBounds(230,0,70,30);
openbutton.addActionListener(new
openbuttonhandler());
this.getContentPane().add(savebutton);
savebutton.setBounds(300,0,70,30);
savebutton.addActionListener(new
savebuttonhandler());
this.getContentPane().add(tokencbutton);
tokencbutton.setBounds(370,0,120,30);
tokencbutton.addActionListener(new tokencbuttonhandler());
this.getContentPane().add(text);
text.setBounds(5,35,this.getWidth()-10,320);
setVisible(true);
}
public static void main(String[] args) {
new textedit();
}
private class openbuttonhandler implements
ActionListener {
public void
actionPerformed(ActionEvent ev) {
try {
BufferedReader input = new BufferedReader(new
FileReader(fname.getText()));
String line = input.readLine();
String fulltext = "";
while (line != null) {
fulltext += line + "\n";
line = input.readLine();
}
text.setText(fulltext);
input.close();
} catch
(Exception e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
}
}
private class savebuttonhandler implements
ActionListener {
public void
actionPerformed(ActionEvent ev) {
try {
PrintWriter output = new PrintWriter(new
FileWriter(fname.getText()));
output.print(text.getText());
output.close();
} catch
(Exception e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
}
}
private class tokencbuttonhandler implements
ActionListener {
public void
actionPerformed(ActionEvent ev) {
StringTokenizer s = new StringTokenizer(text.getText());
int count = 0;
while
(s.hasMoreTokens()) {
s.nextToken(); // ignore the token we get, we just want to count
up
count++;
}
JOptionPane.showMessageDialog(null, "There are "+count+"ac
tokens");
}
}
}