Cześć mam problem z napisaniem prostego edytora tekstu w Javie, a konkretnie problem z dwiema operacjami "Nowy" który ma czyścić panel roboczy z podanych oraz "Zapisz" która ma zapisywać obecny postęp w pisaniu.
Poniżej wstawiam mój kod:
package Zadanie8;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
public class Main extends JFrame implements ActionListener{
JMenuBar menuBar;
JMenu menuPlik,menuAutor;
JMenuItem mOtwórz,mZapisz,mWyjście, mNowy, mZapiszjako;
JTextArea notatnik;
public static void main(String[] args) {
Main appMenu = new Main();
appMenu.setVisible(true);
}
public Main (){
setTitle("Notatnik");
setSize (800,800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout (null);
menuBar = new JMenuBar();
menuPlik = new JMenu ("Plik");
mOtwórz = new JMenuItem ("Otwórz..." );
mOtwórz.addActionListener(this);
mZapisz = new JMenuItem ("Zapisz");
mZapisz.addActionListener(this);
mWyjście = new JMenuItem ("Wyjście");
mZapiszjako = new JMenuItem ("Zapisz jako...");
mZapiszjako.addActionListener(this);
mNowy = new JMenuItem ("Nowy");
notatnik = new JTextArea();
JScrollPane scrollPane = new JScrollPane(notatnik);
scrollPane.setBounds(50,50,600,600);
add(scrollPane);
menuPlik.add (mNowy);
menuPlik.add(mOtwórz);
menuPlik.addSeparator();
menuPlik.add (mZapisz);
menuPlik.add (mZapiszjako);
menuPlik.addSeparator();
menuPlik.add (mWyjście);
mWyjście.addActionListener(this);
mWyjście.setAccelerator(KeyStroke.getKeyStroke("ctrl X"));
menuAutor = new JMenu("O Autorze");
menuAutor.addActionListener(null);
setJMenuBar (menuBar);
menuBar.add(menuPlik);
menuBar.add(menuAutor);
}
@Override
public void actionPerformed(ActionEvent e) {
Object z = e.getSource();
if (z==mOtwórz) {
JFileChooser fc =new JFileChooser();
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
File plik = fc.getSelectedFile();
try {
Scanner skaner = new Scanner(plik);
while (skaner.hasNext())
notatnik.append(skaner.nextLine()+"\n");
skaner.close();
}
catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
else if (z==mZapiszjako) {
JFileChooser fc = new JFileChooser ();
if (fc.showSaveDialog(null)==JFileChooser.APPROVE_OPTION){
File plik = fc.getSelectedFile();
try
{
PrintWriter zapis = new PrintWriter(plik);
Scanner skaner = new Scanner (notatnik.getText());
while (skaner.hasNext())
zapis.println(skaner.nextLine()+ "\n");
zapis.close();
}
catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
if (z==mWyjście)
{
dispose();
}
else if (z==menuAutor){
JOptionPane.showMessageDialog(this, "Autorem progarmu jest ...");
}
}
}
Link do Pastebina //pastebin.pl/view/4ca2c826
Czy ktoś z was mógłby mi podpowiedzieć w jaki sposób zrealizować te dwie czynności ?
Z góry dziękuje za pomoc :)