import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; public class P10 extends JFrame { private JTextArea textArea; private JFileChooser fileChooser; public P10() { setTitle("Swing Text Editor"); setSize(800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); add(scrollPane, BorderLayout.CENTER); fileChooser = new JFileChooser(); JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("File"); JMenuItem openMenuItem = new JMenuItem("Open"); JMenuItem saveMenuItem = new JMenuItem("Save"); JMenuItem exitMenuItem = new JMenuItem("Exit"); openMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int returnVal = fileChooser.showOpenDialog(P10.this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); try { BufferedReader reader = new BufferedReader(new FileReader(file)); textArea.read(reader, null); reader.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }); saveMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int returnVal = fileChooser.showSaveDialog(P10.this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); try { BufferedWriter writer = new BufferedWriter(new FileWriter(file)); textArea.write(writer); writer.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }); exitMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.add(exitMenuItem); menuBar.add(fileMenu); setJMenuBar(menuBar); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { P10 editor = new P10(); editor.setVisible(true); } }); } }