You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
5.5 KiB
199 lines
5.5 KiB
|
|
// Java Program to create a text editor using java
|
|
import java.awt.*;
|
|
import javax.swing.*;
|
|
import java.io.*;
|
|
import java.awt.event.*;
|
|
import javax.swing.plaf.metal.*;
|
|
import javax.swing.text.*;
|
|
class Geburtstag extends JFrame implements ActionListener {
|
|
// Text component
|
|
JTextArea t;
|
|
|
|
// Frame
|
|
JFrame f;
|
|
|
|
// Constructor
|
|
Geburtstag()
|
|
{
|
|
// Create a frame
|
|
f = new JFrame("editor");
|
|
|
|
try {
|
|
// Set metl look and feel
|
|
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
|
|
|
|
// Set theme to ocean
|
|
MetalLookAndFeel.setCurrentTheme(new OceanTheme());
|
|
}
|
|
catch (Exception e) {
|
|
}
|
|
|
|
// Text component
|
|
t = new JTextArea();
|
|
|
|
// Create a menubar
|
|
JMenuBar mb = new JMenuBar();
|
|
|
|
// Create amenu for menu
|
|
JMenu m1 = new JMenu("File");
|
|
|
|
// Create menu items
|
|
JMenuItem mi1 = new JMenuItem("New");
|
|
JMenuItem mi2 = new JMenuItem("Open");
|
|
JMenuItem mi3 = new JMenuItem("Save");
|
|
JMenuItem mi9 = new JMenuItem("Print");
|
|
|
|
// Add action listener
|
|
mi1.addActionListener(this);
|
|
mi2.addActionListener(this);
|
|
mi3.addActionListener(this);
|
|
mi9.addActionListener(this);
|
|
|
|
m1.add(mi1);
|
|
m1.add(mi2);
|
|
m1.add(mi3);
|
|
m1.add(mi9);
|
|
|
|
// Create amenu for menu
|
|
JMenu m2 = new JMenu("Edit");
|
|
|
|
// Create menu items
|
|
JMenuItem mi4 = new JMenuItem("cut");
|
|
JMenuItem mi5 = new JMenuItem("copy");
|
|
JMenuItem mi6 = new JMenuItem("paste");
|
|
|
|
// Add action listener
|
|
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();
|
|
}
|
|
|
|
// If a button is pressed
|
|
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")) {
|
|
// Create an object of JFileChooser class
|
|
JFileChooser j = new JFileChooser("f:");
|
|
|
|
// Invoke the showsSaveDialog function to show the save dialog
|
|
int r = j.showSaveDialog(null);
|
|
|
|
if (r == JFileChooser.APPROVE_OPTION) {
|
|
|
|
// Set the label to the path of the selected directory
|
|
File fi = new File(j.getSelectedFile().getAbsolutePath());
|
|
|
|
try {
|
|
// Create a file writer
|
|
FileWriter wr = new FileWriter(fi, false);
|
|
|
|
// Create buffered writer to write
|
|
BufferedWriter w = new BufferedWriter(wr);
|
|
|
|
// Write
|
|
w.write(t.getText());
|
|
|
|
w.flush();
|
|
w.close();
|
|
}
|
|
catch (Exception evt) {
|
|
JOptionPane.showMessageDialog(f, evt.getMessage());
|
|
}
|
|
}
|
|
// If the user cancelled the operation
|
|
else
|
|
JOptionPane.showMessageDialog(f, "the user cancelled the operation");
|
|
}
|
|
else if (s.equals("Print")) {
|
|
try {
|
|
// print the file
|
|
t.print();
|
|
}
|
|
catch (Exception evt) {
|
|
JOptionPane.showMessageDialog(f, evt.getMessage());
|
|
}
|
|
}
|
|
else if (s.equals("Open")) {
|
|
// Create an object of JFileChooser class
|
|
JFileChooser j = new JFileChooser("f:");
|
|
|
|
// Invoke the showsOpenDialog function to show the save dialog
|
|
int r = j.showOpenDialog(null);
|
|
|
|
// If the user selects a file
|
|
if (r == JFileChooser.APPROVE_OPTION) {
|
|
// Set the label to the path of the selected directory
|
|
File fi = new File(j.getSelectedFile().getAbsolutePath());
|
|
|
|
try {
|
|
// String
|
|
String s1 = "", sl = "";
|
|
|
|
// File reader
|
|
FileReader fr = new FileReader(fi);
|
|
|
|
// Buffered reader
|
|
BufferedReader br = new BufferedReader(fr);
|
|
|
|
// Initilize sl
|
|
sl = br.readLine();
|
|
|
|
// Take the input from the file
|
|
while ((s1 = br.readLine()) != null) {
|
|
sl = sl + "\n" + s1;
|
|
}
|
|
|
|
// Set the text
|
|
t.setText(sl);
|
|
}
|
|
catch (Exception evt) {
|
|
JOptionPane.showMessageDialog(f, evt.getMessage());
|
|
}
|
|
}
|
|
// If the user cancelled the operation
|
|
else
|
|
JOptionPane.showMessageDialog(f, "the user cancelled the operation");
|
|
}
|
|
else if (s.equals("New")) {
|
|
t.setText("");
|
|
}
|
|
else if (s.equals("close")) {
|
|
f.setVisible(false);
|
|
}
|
|
}
|
|
|
|
// Main class
|
|
public static void main(String args[])
|
|
{
|
|
fenster e = new fenster();
|
|
}
|
|
}
|