Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.62 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package h4t5;
  7. import javax.swing.*;
  8. import java.awt.*;
  9. import java.awt.event.*;
  10. import java.io.*;
  11.  
  12. public class Main implements ActionListener{
  13.     JFrame frame;
  14.     JPanel panel, vasen, oikea, ala;
  15.     JButton load, save;
  16.     JTextArea area;
  17.     JTextField field;
  18.     int leveys = 100;
  19.     int korkeus = 500;
  20.     JFileChooser fc;
  21.     String filename;
  22.     File file;
  23.     String content = "";
  24.  
  25.     public Main() {
  26.         //Tehdään frame
  27.         frame = new JFrame();
  28.         frame.setLayout(new BorderLayout());
  29.  
  30.         //Filechooserin luonti ja paneelien alustelu ulkoasua varte
  31.         fc = new JFileChooser();
  32.         panel = new JPanel(new FlowLayout());
  33.         vasen = new JPanel();
  34.         oikea = new JPanel();
  35.         ala = new JPanel();
  36.  
  37.         //Buttonit
  38.         load = new JButton("Load");
  39.         load.addActionListener(this);
  40.         save = new JButton("Save");
  41.         save.addActionListener(this);
  42.  
  43.         //Tekstifieldin teko ja paneeleihin addaus
  44.         field = new JTextField(50);
  45.         field.setText(filename);
  46.         panel.add(field);
  47.         panel.add(save);
  48.         panel.add(load);
  49.  
  50.         //TekstiArean luonti ja borderin asetus
  51.         area = new JTextArea(30, 30);
  52.         area.setText("Kirjota novelli");
  53.         area.setBorder(BorderFactory.createLineBorder(Color.gray));
  54.  
  55.         //Asettelua
  56.         frame.getContentPane().add(panel, BorderLayout.PAGE_START);
  57.         frame.getContentPane().add(area, BorderLayout.CENTER);
  58.         frame.getContentPane().add(vasen, BorderLayout.LINE_START);
  59.         frame.getContentPane().add(oikea, BorderLayout.LINE_END);
  60.         frame.getContentPane().add(ala, BorderLayout.PAGE_END);
  61.  
  62.         frame.pack();
  63.         frame.setVisible(true);
  64.        
  65.     }
  66.     public void actionPerformed(ActionEvent e) {
  67.         //Jos on painettu load nappia..
  68.         if (e.getSource() == load) {
  69.             //Aijotaan avata
  70.             int returnVal = fc.showOpenDialog(panel);
  71.             if (returnVal == JFileChooser.APPROVE_OPTION) {
  72.                 //Luetaan valittu tiedosto stringinä ja laitetaan se contentille arvoksi
  73.                 content = read(fc.getSelectedFile());
  74.                 //Vaihdetaan fieldin teksti filen mukaan
  75.                 field.setText(fc.getSelectedFile().toString());
  76.                 //Asetetaan teksti
  77.                 area.setText(content);
  78.             }
  79.         //Jos tallennellaanki niin muuten sama homma..
  80.         } else if (e.getSource() == save) {
  81.             //mutta otetaan savedialog käyttöön
  82.             int returnVal = fc.showSaveDialog(panel);
  83.             if (returnVal == JFileChooser.APPROVE_OPTION) {
  84.                 //Tallennetaan
  85.                 save(area.getText(), fc.getSelectedFile());
  86.             }
  87.         }
  88.     }
  89.     public static void main(String[] args) {
  90.         Main main = new Main();
  91.     }
  92.     public String read(File f) {
  93.         try {
  94.             if (!f.canRead())
  95.                 return null;
  96.  
  97.             // Avataan striimit ja riiderit
  98.             FileInputStream fis = new FileInputStream(f);
  99.             InputStreamReader isr = new InputStreamReader(fis);
  100.             BufferedReader buffer = new BufferedReader(isr);
  101.  
  102.             String sisalto = "";
  103.             // Mennään joka rivi läpi ja lätkästään stringiin
  104.             while (buffer.ready()) {
  105.                 sisalto = sisalto + buffer.readLine() + "\n";
  106.             }
  107.             // Suljetaan striimit
  108.             buffer.close();
  109.             isr.close();
  110.             fis.close();
  111.             //Palautetaan stringi
  112.             return sisalto;
  113.         }
  114.         catch (Exception e) {
  115.             e.printStackTrace();
  116.             return null;
  117.         }
  118.     }
  119.     public boolean save(String s, File f) {
  120.         try {
  121.             // Jos on jo tiedosto olemassa, poistetaan se
  122.             if (f.exists())
  123.                 f.delete();
  124.             // tehdään uusi tiedosto
  125.             f.createNewFile();
  126.             // jos ei voida kirjottaa niin palautetaan falsea
  127.             if (!f.canWrite())
  128.                 return false;
  129.             // Avataan striimi ja kirjoittaja
  130.             FileOutputStream stream = new FileOutputStream(f);
  131.             PrintWriter writer = new PrintWriter(stream, true);
  132.             // Laitetaan tekstiä joka on TextAreaan syötetty
  133.             writer.println(s);
  134.             // Suljetaan ne
  135.             writer.close();
  136.             stream.close();
  137.  
  138.             return true;
  139.         }
  140.         catch (Exception e) {
  141.             return false;
  142.         }
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement