Commit 01c12d2f authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch16] BeatBox With Added Lambdas; exercises from the end of the chapter; finally examples

parent 86725ee2
Loading
Loading
Loading
Loading
+9 −24
Changes for src/main/java/ch16/BeatBox.java: 9 added lines, 24 removed lines.
Original line number Diff line number Diff line
@@ -3,7 +3,6 @@ package ch16;
import javax.sound.midi.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.ArrayList;

@@ -52,11 +51,11 @@ public class BeatBox {
    buttonBox.add(downTempo);

    JButton save = new JButton("serializeIt");
    save.addActionListener(new MySendListener());
    save.addActionListener(e -> writeFile());
    buttonBox.add(save);

    JButton restore = new JButton("restore");
    restore.addActionListener(new MyReadInListener());
    restore.addActionListener(e -> readFile());
    buttonBox.add(restore);

    Box nameBox = new Box(BoxLayout.Y_AXIS);
@@ -167,9 +166,7 @@ public class BeatBox {
    return event;
  }

  public class MySendListener implements ActionListener {

    public void actionPerformed(ActionEvent a) {
  private void writeFile() {
    boolean[] checkboxState = new boolean[256];
    for (int i = 0; i < 256; i++) {
      JCheckBox check = checkboxList.get(i);
@@ -182,39 +179,27 @@ public class BeatBox {
      FileOutputStream fileStream = new FileOutputStream("Checkbox.ser");
      ObjectOutputStream os = new ObjectOutputStream(fileStream);
      os.writeObject(checkboxState);
      } catch (Exception ex) {
        ex.printStackTrace();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public class MyReadInListener implements ActionListener {

    public void actionPerformed(ActionEvent a) {
  private void readFile() {
    boolean[] checkboxState = null;
    try {
      FileInputStream fileIn = new FileInputStream("Checkbox.ser");
      ObjectInputStream is = new ObjectInputStream(fileIn);
      checkboxState = (boolean[]) is.readObject();

      } catch (Exception ex) {
        ex.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    }

    for (int i = 0; i < 256; i++) {
      JCheckBox check = checkboxList.get(i);
        if (checkboxState[i]) {
          check.setSelected(true);
        } else {
          check.setSelected(false);
        }
      check.setSelected(checkboxState[i]);
    }

    sequencer.stop();
    buildTrackAndStart();

  }
}


}
+29 −0
Changes for src/main/java/ch16/SaveWithFinally.java: 29 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch16;

import java.io.*;
import java.util.List;

public class SaveWithFinally {
  private List<QuizCard> cardList;

  private void saveFile(File file) {
    BufferedWriter writer = null;
    try {
      writer = new BufferedWriter(new FileWriter(file));

      for (QuizCard card : cardList) {
        writer.write(card.getQuestion() + "/");
        writer.write(card.getAnswer() + "\n");
      }

    } catch (IOException e) {
      System.out.println("Couldn't write the cardList out: " + e.getMessage());
    } finally {
      try {
        writer.close();
      } catch (Exception e) {
        System.out.println("Couldn't close writer: " + e.getMessage());
      }
    }
  }
}
+23 −0
Changes for src/main/java/ch16/SaveWithTWR.java: 23 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch16;

import java.io.*;
import java.util.List;

public class SaveWithTWR {
  private List<QuizCard> cardList;

  private void saveFile(File file) {
    try (BufferedWriter writer =
           new BufferedWriter(new FileWriter(file));
         BufferedReader reader =
           new BufferedReader(new FileReader(file))) {

      for (QuizCard card : cardList) {
        writer.write(card.getQuestion() + "/");
        writer.write(card.getAnswer() + "\n");
      }
    } catch (IOException e) {
      System.out.println("Couldn't write the cardList out: " + e.getMessage());
    }
  }
}
+2 −1
Changes for src/main/java/ch16/ex/DungeonGame.java: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
package ch16;
package ch16.ex;

import java.io.*;

@@ -29,6 +29,7 @@ class DungeonTest {
      ObjectOutputStream oos = new ObjectOutputStream(fos);
      oos.writeObject(d);
      oos.close();

      FileInputStream fis = new FileInputStream("dg.ser");
      ObjectInputStream ois = new ObjectInputStream(fis);
      d = (DungeonGame) ois.readObject();
+35 −0
Changes for src/main/java/ch16/ex/Fragments.java: 35 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch16.ex;

import ch16.GameCharacter;

import java.io.*;

public class Fragments {
  void fragment1() {
//    FileReader fileReader = new FileReader();
//    BufferedReader reader = new BufferedReader(fileReader);
  }

  void fragment2() throws IOException {
    FileOutputStream f = new FileOutputStream("Foo.ser");
    ObjectOutputStream os = new ObjectOutputStream(f);
  }

  void fragment3(File file) throws IOException {
    BufferedReader reader = new BufferedReader(new FileReader(file));
    String line;
    while ((line = reader.readLine()) != null) {
      makeCard(line);
    }
  }

  void fragment4() throws IOException, ClassNotFoundException {
    FileOutputStream f = new FileOutputStream("Game.ser");
//    ObjectInputStream is = new ObjectInputStream(f);
//    GameCharacter oneAgain = (GameCharacter) is.readObject();
  }

  private void makeCard(String line) {

  }
}