Text editor in Java
Below is a basic example of a text editor using JTextArea for text input and output and JFileChooser for file operations. Copy and paste this code into a Java file (e.g., TextEditor.java) and run it.
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; public class TextEditor extends JFrame { private JTextArea textArea; private JFileChooser fileChooser; public TextEditor() { setTitle("Text Editor"); setSize(800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); getContentPane().add(scrollPane, BorderLayout.CENTER); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu fileMenu = new JMenu("File"); menuBar.add(fileMenu); JMenuItem openItem = new JMenuItem("Open"); JMenuItem saveItem = new JMenuItem("Save"); JMenuItem exitItem = new JMenuItem("Exit"); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(exitItem); fileChooser = new JFileChooser(); openItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { openFile(); } }); saveItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { saveFile(); } }); exitItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); } private void openFile() { int returnVal = fileChooser.showOpenDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); try (BufferedReader reader = new BufferedReader(new FileReader(file))) { textArea.setText(""); // Clear existing text String line; while ((line = reader.readLine()) != null) { textArea.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); JOptionPane.showMessageDialog(this, "Error reading the file", "Error", JOptionPane.ERROR_MESSAGE); } } } private void saveFile() { int returnVal = fileChooser.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) { writer.write(textArea.getText()); } catch (IOException e) { e.printStackTrace(); JOptionPane.showMessageDialog(this, "Error writing to the file", "Error", JOptionPane.ERROR_MESSAGE); } } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new TextEditor().setVisible(true); } }); } }