Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package h4t5;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- public class Main implements ActionListener{
- JFrame frame;
- JPanel panel, vasen, oikea, ala;
- JButton load, save;
- JTextArea area;
- JTextField field;
- int leveys = 100;
- int korkeus = 500;
- JFileChooser fc;
- String filename;
- File file;
- String content = "";
- public Main() {
- //Tehdään frame
- frame = new JFrame();
- frame.setLayout(new BorderLayout());
- //Filechooserin luonti ja paneelien alustelu ulkoasua varte
- fc = new JFileChooser();
- panel = new JPanel(new FlowLayout());
- vasen = new JPanel();
- oikea = new JPanel();
- ala = new JPanel();
- //Buttonit
- load = new JButton("Load");
- load.addActionListener(this);
- save = new JButton("Save");
- save.addActionListener(this);
- //Tekstifieldin teko ja paneeleihin addaus
- field = new JTextField(50);
- field.setText(filename);
- panel.add(field);
- panel.add(save);
- panel.add(load);
- //TekstiArean luonti ja borderin asetus
- area = new JTextArea(30, 30);
- area.setText("Kirjota novelli");
- area.setBorder(BorderFactory.createLineBorder(Color.gray));
- //Asettelua
- frame.getContentPane().add(panel, BorderLayout.PAGE_START);
- frame.getContentPane().add(area, BorderLayout.CENTER);
- frame.getContentPane().add(vasen, BorderLayout.LINE_START);
- frame.getContentPane().add(oikea, BorderLayout.LINE_END);
- frame.getContentPane().add(ala, BorderLayout.PAGE_END);
- frame.pack();
- frame.setVisible(true);
- }
- public void actionPerformed(ActionEvent e) {
- //Jos on painettu load nappia..
- if (e.getSource() == load) {
- //Aijotaan avata
- int returnVal = fc.showOpenDialog(panel);
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- //Luetaan valittu tiedosto stringinä ja laitetaan se contentille arvoksi
- content = read(fc.getSelectedFile());
- //Vaihdetaan fieldin teksti filen mukaan
- field.setText(fc.getSelectedFile().toString());
- //Asetetaan teksti
- area.setText(content);
- }
- //Jos tallennellaanki niin muuten sama homma..
- } else if (e.getSource() == save) {
- //mutta otetaan savedialog käyttöön
- int returnVal = fc.showSaveDialog(panel);
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- //Tallennetaan
- save(area.getText(), fc.getSelectedFile());
- }
- }
- }
- public static void main(String[] args) {
- Main main = new Main();
- }
- public String read(File f) {
- try {
- if (!f.canRead())
- return null;
- // Avataan striimit ja riiderit
- FileInputStream fis = new FileInputStream(f);
- InputStreamReader isr = new InputStreamReader(fis);
- BufferedReader buffer = new BufferedReader(isr);
- String sisalto = "";
- // Mennään joka rivi läpi ja lätkästään stringiin
- while (buffer.ready()) {
- sisalto = sisalto + buffer.readLine() + "\n";
- }
- // Suljetaan striimit
- buffer.close();
- isr.close();
- fis.close();
- //Palautetaan stringi
- return sisalto;
- }
- catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- public boolean save(String s, File f) {
- try {
- // Jos on jo tiedosto olemassa, poistetaan se
- if (f.exists())
- f.delete();
- // tehdään uusi tiedosto
- f.createNewFile();
- // jos ei voida kirjottaa niin palautetaan falsea
- if (!f.canWrite())
- return false;
- // Avataan striimi ja kirjoittaja
- FileOutputStream stream = new FileOutputStream(f);
- PrintWriter writer = new PrintWriter(stream, true);
- // Laitetaan tekstiä joka on TextAreaan syötetty
- writer.println(s);
- // Suljetaan ne
- writer.close();
- stream.close();
- return true;
- }
- catch (Exception e) {
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement