September 8th, 2017
The Imitation Game
Introductions and the Enigma machine: 8:00 -> 16:35
Christopher: 46:24
Christopher’s ineffectiveness: 51:06
The game and frustration: 1:06:43
C-I-L-L-Y: 1:11:30
September 8th, 2017
The Imitation Game
Introductions and the Enigma machine: 8:00 -> 16:35
Christopher: 46:24
Christopher’s ineffectiveness: 51:06
The game and frustration: 1:06:43
C-I-L-L-Y: 1:11:30
In this class you will learn more in-depth concepts like
and work on the College Board Labs like the Elevens Card Game.
September 7th, 2016
How to turn in assignments:
1. Program name: initials followed by an underscore and assignment name. Example: GE_Snowman.java
2. Header information: Description of assignment, author and date
3. If the program generates output from test run, the output should be included in the program as comments
4. Upload the files with extension “.java”
5. Copy and paste your code onto the reply.
Classwork:
1. If you have not done so, visit edmodo.com
Create and account or join with the code given in the home page.
Note: Please use your full name as your screen name.
2. Read thoroughly the assignment below. Find a partner and discuss it.
3. Use paper and pencil/pen to “show” the IntegerSet and its functionality.
Homework due tomorrow:
1. Send me an email(graciela_elia@princetonk12.org) with your parents email address: the email subject should have student name and class period and class name:
Ex:
Subject: 3rd period – Intro to Comp -Your name
2. Discuss the class policy with your parents.
3. Visit edmodo.com and reply to the “Introduce yourself” post.
Java Language and OOD Review Assignment
Due date: September 14th, 2016
Create class IntegerSet. Each object of the class can hold integers in the range 0 through 100. A set is represented internally as an array of booleans. Array element a[i] is true if integer i is in the set. Array element a[j] is false if integer j is not in the set. The no-argument constructor initializes a set to the so-called “empty set” (i.e., a set whose array representation contains all false values).
Provide the following methods:
1. Method unionOfIntegerSets creates a third IntegerSet which is the set-theoretic union of two existing sets (i.e., an element of the third set’s array is set to true if that element is true in either or both of the existing sets; otherwise, the element of the third set is set to false).
2. Method intersectionOfIntegerSets creates a third IntegerSet which is the set-theoretic intersection of two existing sets i.e., an element of the third set’s array is set to false if that element is false in either or both of the existing sets; otherwise, the element of the thirds set is set to true).
3. Method insertElement inserts a new integer k into a set (by setting a[k] to true).
4. Method deleteElement deletes integer m (by setting a[m] to false).
5. Method setPrint prints a set as a list of numbers separated by spaces. Print only those elements that are present in the set. Print “- – -” (3 dashes) for an empty set.
6. Method isEqualTo determines if two sets are equal.
Write a program to test your IntegerSet class. Instantiate several IntegerSet objects. Include proof that all your methods work properly.
NOTE: Use your IntegerSet drawing and flowchart to work on the implementation.
I WILL COLLECT ALL YOUR PAPERS. MAKE SURE YOUR NAME AND PERIOD ARE ON IT.
November 4th, 2013
import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; /** This program demonstrates how to install an action listener. */ public class ButtonViewer { private static final int FRAME_WIDTH = 100; private static final int FRAME_HEIGHT = 60; public static void main(String[] args) { JFrame frame = new JFrame(); JButton button = new JButton("Click me!"); frame.add(button); ActionListener listener = new ClickListener(); button.addActionListener(listener); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** An action listener that prints a message. */ public class ClickListener implements ActionListener { public void actionPerformed(ActionEvent event) { System.out.println("I was clicked."); } }
/** A bank account has a balance that can be changed by deposits and withdrawals. */ public class BankAccount { private double balance; /** Constructs a bank account with a zero balance. */ public BankAccount() { balance = 0; } /** Constructs a bank account with a given balance. @param initialBalance the initial balance */ public BankAccount(double initialBalance) { balance = initialBalance; } /** Deposits money into the bank account. @param amount the amount to deposit */ public void deposit(double amount) { double newBalance = balance + amount; balance = newBalance; } /** Withdraws money from the bank account. @param amount the amount to withdraw */ public void withdraw(double amount) { double newBalance = balance - amount; balance = newBalance; } /** Gets the current balance of the bank account. @return the current balance */ public double getBalance() { return balance; } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; /** This program demonstrates how an action listener can access a variable from a surrounding block. */ public class InvestmentViewer1 { private static final int FRAME_WIDTH = 120; private static final int FRAME_HEIGHT = 60; private static final double INTEREST_RATE = 10; private static final double INITIAL_BALANCE = 1000; public static void main(String[] args) { JFrame frame = new JFrame(); // The button to trigger the calculation JButton button = new JButton("Add Interest"); frame.add(button); // The application adds interest to this bank account final BankAccount account = new BankAccount(INITIAL_BALANCE); class AddInterestListener implements ActionListener { public void actionPerformed(ActionEvent event) { // The listener method accesses the account variable // from the surrounding block double interest = account.getBalance() * INTEREST_RATE / 100; account.deposit(interest); System.out.println("balance: " + account.getBalance()); } } ActionListener listener = new AddInterestListener(); button.addActionListener(listener); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** This program displays the growth of an investment. */ public class InvestmentViewer2 { private static final int FRAME_WIDTH = 400; private static final int FRAME_HEIGHT = 100; private static final double INTEREST_RATE = 10; private static final double INITIAL_BALANCE = 1000; public static void main(String[] args) { JFrame frame = new JFrame(); // The button to trigger the calculation JButton button = new JButton("Add Interest"); // The application adds interest to this bank account final BankAccount account = new BankAccount(INITIAL_BALANCE); // The label for displaying the results final JLabel label = new JLabel("balance: " + account.getBalance()); // The panel that holds the user interface components JPanel panel = new JPanel(); panel.add(button); panel.add(label); frame.add(panel); class AddInterestListener implements ActionListener { public void actionPerformed(ActionEvent event) { double interest = account.getBalance() * INTEREST_RATE / 100; account.deposit(interest); label.setText("balance: " + account.getBalance()); } } ActionListener listener = new AddInterestListener(); button.addActionListener(listener); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; /** This component displays a rectangle that can be moved. */ public class RectangleComponent extends JComponent { private static final int BOX_X = 100; private static final int BOX_Y = 100; private static final int BOX_WIDTH = 20; private static final int BOX_HEIGHT = 30; private Rectangle box; public RectangleComponent() { // The rectangle that the paintComponent method draws box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT); } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.draw(box); } /** Moves the rectangle to the given location. @param x the x-position of the new location @param y the y-position of the new location */ public void moveTo(int x, int y) { box.setLocation(x, y); repaint(); } }
import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import javax.swing.JFrame; /** This program displays a RectangleComponent. */ public class RectangleComponentViewer { private static final int FRAME_WIDTH = 300; private static final int FRAME_HEIGHT = 400; public static void main(String[] args) { final RectangleComponent component = new RectangleComponent(); // Add mouse press listener class MousePressListener implements MouseListener { public void mousePressed(MouseEvent event) { int x = event.getX(); int y = event.getY(); component.moveTo(x, y); } // Do-nothing methods public void mouseReleased(MouseEvent event) {} public void mouseClicked(MouseEvent event) {} public void mouseEntered(MouseEvent event) {} public void mouseExited(MouseEvent event) {} } MouseListener listener = new MousePressListener(); component.addMouseListener(listener); JFrame frame = new JFrame(); frame.add(component); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; /** This component displays a rectangle that can be moved. */ public class RectangleComponent extends JComponent { private static final int BOX_X = 100; private static final int BOX_Y = 100; private static final int BOX_WIDTH = 20; private static final int BOX_HEIGHT = 30; private Rectangle box; public RectangleComponent() { // The rectangle that the paintComponent method draws box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT); } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.draw(box); } /** Moves the rectangle by a given amount. @param x the amount to move in the x-direction @param y the amount to move in the y-direction */ public void moveBy(int dx, int dy) { box.translate(dx, dy); repaint(); } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.Timer; /** This program moves the rectangle. */ public class RectangleMover { private static final int FRAME_WIDTH = 300; private static final int FRAME_HEIGHT = 400; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setTitle("An animated rectangle"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final RectangleComponent component = new RectangleComponent(); frame.add(component); frame.setVisible(true); class TimerListener implements ActionListener { public void actionPerformed(ActionEvent event) { component.moveBy(1, 1); } } ActionListener listener = new TimerListener(); final int DELAY = 100; // Milliseconds between timer ticks Timer t = new Timer(DELAY, listener); t.start(); } }
Homework: Exercise 4: Enhance the ButtonViewer program so that it prints a message “I was clicked n times!” whenever the button is clicked. The value n should be incremented with each click.
November 6th, 2013
Exercise 8: Write a program that animates two cars moving across a frame in opposite direc- tions (but at different heights so that they don’t collide.)
Exercise 9: Change the RectangleComponent for the mouse listener program so that a new rectangle is added to the component whenever the mouse is clicked. Hint: Keep an ArrayList
Exercise 10: Write a program that prompts the user to enter the x- and y-positions of the center and a radius, using JOptionPane dialogs.When the user clicks a “Draw” button, draw a circle with that center and radius in a component.
Exercise 10: Write a program that allows the user to specify a circle by typing the radius in a JOptionPane and then clicking on the center. Note that you don’t need a “Draw” button.
Exercise 11: Write a program that allows the user to specify a circle with two mouse presses, the first one on the center and the second on a point on the periphery. Hint: In the mouse press handler, you must keep track of whether you already received the center point in a previous mouse press.
November 5th, 2013
Classwork:
Exercise 5: Write a program,CurrentTime.java that uses a timer to print the current time once a second. Hint: The following code prints the current time:
Date now = new Date(); System.out.println(now);
The Date class is in the java.util package.
Exercise 6: Change the RectangleComponent, BouncingSqr.java for the animation program so that the rectangle bounces off the edges of the component rather than simply moving outside.
Homework:
Exercise 7: Write a program, AnimatedCar.java that animates a car so that it moves across a frame.
November 11th, 2014
How to put some components together:
This application uses JTextField, JButton and JLabel
/** A bank account has a balance that can be changed by deposits and withdrawals. */ public class BankAccount { private double balance; /** Constructs a bank account with a zero balance. */ public BankAccount() { balance = 0; } /** Constructs a bank account with a given balance. @param initialBalance the initial balance */ public BankAccount(double initialBalance) { balance = initialBalance; } /** Deposits money into the bank account. @param amount the amount to deposit */ public void deposit(double amount) { double newBalance = balance + amount; balance = newBalance; } /** Withdraws money from the bank account. @param amount the amount to withdraw */ public void withdraw(double amount) { double newBalance = balance - amount; balance = newBalance; } /** Gets the current balance of the bank account. @return the current balance */ public double getBalance() { return balance; } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** A frame that shows the growth of an investment with variable interest. */ public class InvestmentFrame extends JFrame { private static final int FRAME_WIDTH = 450; private static final int FRAME_HEIGHT = 100; private static final double DEFAULT_RATE = 5; private static final double INITIAL_BALANCE = 1000; private JLabel rateLabel; private JTextField rateField; private JButton button; private JLabel resultLabel; private JPanel panel; private BankAccount account; public InvestmentFrame() { account = new BankAccount(INITIAL_BALANCE); // Use instance variables for components resultLabel = new JLabel("balance: " + account.getBalance()); // Use helper methods createTextField(); createButton(); createPanel(); setSize(FRAME_WIDTH, FRAME_HEIGHT); } private void createTextField() { rateLabel = new JLabel("Interest Rate: "); final int FIELD_WIDTH = 10; rateField = new JTextField(FIELD_WIDTH); rateField.setText("" + DEFAULT_RATE); } private void createButton() { button = new JButton("Add Interest"); class AddInterestListener implements ActionListener { public void actionPerformed(ActionEvent event) { double rate = Double.parseDouble(rateField.getText()); double interest = account.getBalance() * rate / 100; account.deposit(interest); resultLabel.setText("balance: " + account.getBalance()); } } ActionListener listener = new AddInterestListener(); button.addActionListener(listener); } private void createPanel() { panel = new JPanel(); panel.add(rateLabel); panel.add(rateField); panel.add(button); panel.add(resultLabel); add(panel); } }
import javax.swing.JFrame; /** This program displays the growth of an investment. */ public class InvestmentViewer3 { public static void main(String[] args) { JFrame frame = new InvestmentFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
November 4th, 2014
Classwork/Homework:
1. Write a program, YI_MovingCar.java that animates a car so that it moves across a frame.
2. Write a program, YI_TwoMovingCars.java that animates two cars moving across a frame in opposite directions (but at different heights so that they don’t collide.)
import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** This program demonstrates how to install an action listener. */ public class ButtonViewer { private static final int FRAME_WIDTH = 100; private static final int FRAME_HEIGHT = 60; public static void main(String[] args) { /************ Inner Class Define Before is used ***************************/ /** An action listener that prints a message. */ class ClickListener implements ActionListener { public void actionPerformed(ActionEvent event) { System.out.println("I was clicked."); } } /************ Inner Class End ***************************/ JFrame frame = new JFrame(); JButton button = new JButton("Click me!"); frame.add(button); ActionListener listener = new ClickListener(); button.addActionListener(listener); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
Novermber 3rd, 2014
More on Event Listeners:
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; /** This component displays a rectangle that can be moved. */ public class RectangleMovingComponent extends JComponent { private static final int BOX_X = 100; private static final int BOX_Y = 100; private static final int BOX_WIDTH = 20; private static final int BOX_HEIGHT = 30; private Rectangle box; public RectangleMovingComponent() { // The rectangle that the paintComponent method draws box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT); } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.draw(box); } /** Moves the rectangle by a given amount. @param x the amount to move in the x-direction @param y the amount to move in the y-direction */ public void moveBy(int dx, int dy) { box.translate(dx, dy); repaint(); } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.Timer; /** This program moves the rectangle. */ public class RectangleMover { private static final int FRAME_WIDTH = 300; private static final int FRAME_HEIGHT = 400; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setTitle("An animated rectangle"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final RectangleMovingComponent component = new RectangleMovingComponent(); frame.add(component); frame.setVisible(true); class TimerListener implements ActionListener { public void actionPerformed(ActionEvent event) { component.moveBy(1, 1); } } ActionListener listener = new TimerListener(); final int DELAY = 100; // Milliseconds between timer ticks Timer t = new Timer(DELAY, listener); t.start(); } }
Classwork/Homework:
Use the programs given to write a program, YI_BouncingBlock.java to make the block bounce when it reaches a all.
October 27th, 2014
Classwork:
Use a JFrame to create an application, YI_ManyShapes.java and YI_ManyShapesJFrame.java that draws rectangles, ellipses and lines. Use different colors and fill.
Here is a good source for your application:
Here is a simple example:
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; /** * Write a description of class RectangleObject here. */ public class RectangleObject extends JComponent { public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; // Construct a rectangle object Rectangle box = new Rectangle(5, 10, 20, 30); // draw the rectangle g2.draw(box); } }
The JFrame class:
import javax.swing.JFrame; /** * Draw an empty frame using JFrame. * */ public class RectangleJFrame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(300,400); frame.setTitle("A Rectanlge Object in a JFrame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); RectangleObject aRectangle = new RectangleObject(); frame.add(aRectangle); frame.setVisible(true); } }
Homework:
Write an application, YI_HappyFace.java using what you learned from Manyshapes to draw a happy face. Make sure to include the JFrame class also.