Ocena kodu programu i wskazanie co jest źle/co poprawić

0

Czy moglibyście powiedzieć co jest źle w tym programie i ewentualnie napisać co mam poprawić,dodam,że dopiero uczę się JAVY a ten program muszę oddać na za tydzień.Pozdrawiam i dziękuje za wszystkie sugestie.

public class Edytor extends JFrame implements ActionListener 
{

private JTextArea edytor =new JTextArea();
private JScrollPane scroll =new JScrollPane(edytor);
private JMenuBar menuBar =new JMenuBar();
private JMenu Plik =new JMenu("Plik");
private JFrame frame =new JFrame("Edytor tekstu");
private JMenuItem  Wczytaj=new JMenuItem("Wczytaj");
private JMenuItem Zapisz =new JMenuItem("Zapisz");

public Edytor()
{
Container c = this.getContentPane();
Container d = new Container();
d.setLayout(new GridLayout());
c.setLayout(new BorderLayout());
//c.add(przycisk,BorderLayout.SOUTH);
c.add(d,BorderLayout.SOUTH);
c.add(scroll,BorderLayout.CENTER);
Wczytaj.addActionListener(this);
Zapisz.addActionListener(this);
this.setSize(new Dimension(650,650));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

this.setJMenuBar(menuBar);
menuBar.add(Plik);
this.setTitle("Edytor tekstu");
Plik.add(Wczytaj);
Plik.add(Zapisz);
}
public static void main(String[] args) 
{
new Edytor();
}
@Override
public void actionPerformed(ActionEvent a) 
{
if(a.getSource()==Wczytaj)
{
  JFileChooser fc =new JFileChooser();
  fc.showOpenDialog(null);
  String tekst = "";
  File plik=fc.getSelectedFile();
try 
{
  BufferedReader br=new BufferedReader(new FileReader(plik));
  String linia;
do
{
  linia=br.readLine();
  if(linia!=null)
  tekst+=linia+"\n";
}
  while(linia!=null);
  br.close();
  edytor.setText(tekst);
} 
catch (IOException e) 
{
  // TODO Auto-generated catch block
  e.printStackTrace();
}
}
{
if(a.getSource()==Zapisz)
{
	String tekst;
	/**
	 * @param args
	 */
	JFileChooser fc =new JFileChooser();
	fc.showSaveDialog(null);
	tekst="";
	for(int i=0;i<10;i++)
	{
		tekst+="Hello World!\n";
	}
	File plik=fc.getSelectedFile();
	try {
		BufferedWriter bw=new BufferedWriter(new FileWriter(plik));
		
		bw.write(tekst);
		bw.flush();
		bw.close();
		} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
}
}
}
1

Na początek wcięcia i nazwy zmiennych.

0
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Edytor extends JFrame implements ActionListener {
	private JTextArea edytor = new JTextArea();
	private JScrollPane scroll = new JScrollPane(edytor);
	private JMenuBar menuBar = new JMenuBar();
	private JMenu File = new JMenu("File");
	private JFrame frame = new JFrame("Word editor");
	private JMenuItem Open = new JMenuItem("Open ");
	private JMenuItem Save = new JMenuItem("Save ");

	public Edytor() {
		Container c = this.getContentPane();
		Container d = new Container();
		d.setLayout(new GridLayout());
		c.setLayout(new BorderLayout());
		c.add(d, BorderLayout.SOUTH);
		c.add(scroll, BorderLayout.CENTER);
		Open.addActionListener(this);
		Save.addActionListener(this);
		this.setSize(new Dimension(650, 650));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setJMenuBar(menuBar);
		this.setTitle("Word editor");
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		menuBar.add(File);
		File.add(Open);
		File.add(Save);
	}

	public static void main(String[] args) {
		new Edytor();
	}

	@Override
	public void actionPerformed(ActionEvent a) {
		if (a.getSource() == Open) {
			JFileChooser fc = new JFileChooser();
			fc.showOpenDialog(null);
			String tekst = "";
			File plik = fc.getSelectedFile();

			try {
				BufferedReader br = new BufferedReader(new FileReader(plik));
				String linia;

				do {
					linia = br.readLine();
					if (linia != null)
						tekst += linia + "\n";
				} while (linia != null);
				br.close();
				edytor.setText(tekst);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		{

			if (a.getSource() == Save) {
				String tekst;
				/**
				 * @param args
				 */
				JFileChooser fc = new JFileChooser();
				fc.showSaveDialog(null);
				tekst = "";

				for (int i = 0; i < 10; i++) {
					tekst += "Hello World!\n";
				}
				File plik = fc.getSelectedFile();

				try {
					BufferedWriter bw = new BufferedWriter(new FileWriter(plik));
					bw.write(tekst);
					bw.flush();
					bw.close();

				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

     
0

pomoże ktoś to poprawić?

0

Teraz działa, tzn. zapisuje do pliku to co zostało napisane w tym edytorze a nie jakieś Hello World.


   // ciach
  // zmiana dotyczyla tej metody
    @Override
    public void actionPerformed(ActionEvent a) {
        if (a.getSource() == Open)
        {
            JFileChooser fc = new JFileChooser();
            fc.showOpenDialog(null);
            String tekst = "";
            File plik = fc.getSelectedFile();

            try {
                BufferedReader br = new BufferedReader(new FileReader(plik));
                String linia;

                do {
                    linia = br.readLine();
                    if (linia != null)
                        tekst += linia + "\n";
                } while (linia != null);
                br.close();
                edytor.setText(tekst);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }


        else if (a.getSource() == Save)
            {
                String tekst;
                /**
                 * @param args
                 */
                JFileChooser fc = new JFileChooser();
                fc.showSaveDialog(null);
                tekst = edytor.getText();

                File plik = fc.getSelectedFile();

                try {
                    BufferedWriter bw = new BufferedWriter(new FileWriter(plik));
                    bw.write(tekst);
                    bw.flush();
                    bw.close();

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

    }

0
 import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;

public class Edytor extends JFrame implements ActionListener {
	private static final String Edytor = null;
	private JTextArea edytor = new JTextArea();
	private JScrollPane scroll = new JScrollPane(edytor);
	private JMenuBar menuBar = new JMenuBar();
	private JMenu Plik = new JMenu("Plik");
	private JMenu Edycja = new JMenu("Edycja");
	private JFrame frame = new JFrame("Edytor");
	private JMenuItem Otwórz = new JMenuItem("Otwórz");
	private JMenuItem Zapisz = new JMenuItem("Zapisz");
	private JMenuItem Wklej = new JMenuItem("Wklej");
	private JMenuItem Kopiuj = new JMenuItem("Kopiuj");
	private JMenuItem Zaznacz = new JMenuItem("Zaznacz");
	private JMenuItem Wytnij = new JMenuItem("Wytnij");

	public Edytor() {
		Container c = this.getContentPane();
		Container d = new Container();
		d.setLayout(new GridLayout());
		c.setLayout(new BorderLayout());
		c.add(d, BorderLayout.SOUTH);
		c.add(scroll, BorderLayout.CENTER);
		Otwórz.addActionListener(this);
		Zapisz.addActionListener(this);
		Wklej.addActionListener(this);
		Kopiuj.addActionListener(this);
		Zaznacz.addActionListener(this);

		this.setSize(new Dimension(650, 650));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setJMenuBar(menuBar);
		this.setTitle("Edytor");
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		menuBar.add(Plik);
		menuBar.add(Edycja);
		Plik.add(Otwórz);
		Plik.add(Zapisz);
		Edycja.add(Kopiuj);
		Edycja.add(Wklej);
		Edycja.add(Zaznacz);
		Edycja.add(Wytnij);

		// skróty klawiszowe
		Otwórz.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
				ActionEvent.CTRL_MASK));
		Zapisz.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
				ActionEvent.CTRL_MASK));
		Kopiuj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
				ActionEvent.CTRL_MASK));
		Wklej.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
				ActionEvent.CTRL_MASK));
        Zaznacz.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
				ActionEvent.CTRL_MASK));
		Wytnij.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
				ActionEvent.CTRL_MASK));

	}

	public static void main(String[] args) {
		new Edytor();
	}

	@Override
	public void actionPerformed(ActionEvent a) {
		if (a.getSource() == Otwórz) {
			JFileChooser fc = new JFileChooser();
			fc.showOpenDialog(null);
			String tekst = "";
			File plik = fc.getSelectedFile();

			try {
				BufferedReader br = new BufferedReader(new FileReader(plik));
				String linia;

				do {
					linia = br.readLine();
					if (linia != null)
						tekst += linia + "\n";
				} while (linia != null);
				br.close();
				edytor.setText(tekst);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		{

			if (a.getSource() == Zapisz) {
				String tekst;
				/**
				 * @param args
				 */
				JFileChooser fc = new JFileChooser();
				fc.showSaveDialog(null);
				tekst = edytor.getText();
				File plik = fc.getSelectedFile();

				try {
					BufferedWriter bw = new BufferedWriter(new FileWriter(plik));
					bw.write(tekst);
					bw.flush();
					bw.close();

				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}
	

Pomóżcie bo już nie mam pojęcia jak do tego dodać funkcje kopiuj,wklej,zaznacz ale żeby działały po kliknięciu w menu bo już czytam czytam i nie mam pojecia jak to dodać

0

Pomoze ktos chociaz z funkcja kopiuj a dalej sobie sam poradze jak zobacze jak to ma byc?

0

Musisz to co jest w tym TextBox skopiować po prostu do schowka:
http://www.avajava.com/tutorials/lessons/how-do-i-copy-a-string-to-the-clipboard.html

a później jak jest wklej to pobierasz dane z tego schowka i ten tekst przypisujesz temu polu typu textbox

http://www.javapractices.com/topic/TopicAction.do?Id=82

Myślę że to wystarczy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1