/* @(#)Methods.java 17 September 2005 */ /* Useful imports */ import edu.neu.ccs.*; import edu.neu.ccs.gui.*; import edu.neu.ccs.codec.*; import edu.neu.ccs.console.*; import edu.neu.ccs.filter.*; import edu.neu.ccs.jpf.*; import edu.neu.ccs.parser.*; import edu.neu.ccs.pedagogy.*; import edu.neu.ccs.quick.*; import edu.neu.ccs.util.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; import java.awt.image.*; import javax.swing.*; import javax.swing.border.*; import java.io.*; import java.util.*; import java.math.*; import java.beans.*; import java.lang.reflect.*; import java.net.URL; import java.util.regex.*; import java.text.ParseException; /** The sample starter class for Java Power Framework. */ public class Sample1 extends JPF { public static void main(String[] args) { new Sample1().window.installSimpleMouseActions(true); } public void PrintThing() { console.out.println("Thing"); } public void DemandSumInConsole() { double sum = 0; console.out.println("Enter summands. Enter 0 to Stop.\n"); while (true) { double summand = console.in.demandDouble("Enter summand:"); if (summand != 0) { sum += summand; console.out.println("Sum: " + sum + "\n"); } else { console.out.println("\nDone\n"); break; } } } public void RequestSumInConsole() { double sum = 0; console.out.println("Enter summands. Press Return to Stop.\n"); while (true) { try { sum += console.in.requestDouble("Enter summand:"); console.out.println("Sum: " + sum + "\n"); } catch (CancelledException ex) { console.out.println("\nDone\n"); break; } } } public double EvalMathExpression(double x) { return x; } public void RectangleAndCircle() { window.clearSequence(); XRect r = new XRect(100,50,200,100); window.addPaintable(r); XCircle s = new XCircle(200,300,50); window.addPaintable(s); window.repaint(); } public void FilledRectangleAndCircle() { window.clearSequence(); XRect r = new XRect(100,50,200,100); ShapePaintable rp = new ShapePaintable(r, PaintMode.FILL, Colors.green); window.addPaintable(rp); XCircle s = new XCircle(200,300,50); ShapePaintable sp = new ShapePaintable(s, PaintMode.FILL_DRAW, Colors.violet); window.addPaintable(sp); window.repaint(); } public void ShowRandomCards() { // obtain images of the JFitz card deck String cardsURL = "http://www.ccs.neu.edu/jpt/images/jfitz_cards/"; String cardsList = "imagelist.txt"; ImagePaintableLite[] cards = WebImageTools.readImagesAsPaintableLite (cardsURL, cardsList); // obtain the length of the cards array int N = cards.length; // exit if the cards could not be read if (N == 0) return; // obtain sizes int w = window.getBufferWidth(); int h = window.getBufferHeight(); int w0 = cards[0].getImageWidth(); int h0 = cards[0].getImageHeight(); int wmin = 5; int wmax = w - w0 - wmin; int hmin = 5; int hmax = h - h0 - hmin; // obtain a permutation for randomizing the cards int[] permutation = ProbStatTools.randomPermutation(N); window.clearSequence(); for (int i = 0; i < N; i++) { // pick a random card using the permutation int k = permutation[i]; Paintable card = cards[k]; // compute a random position for this card int x = MathUtilities.randomInt(wmin, wmax); int y = MathUtilities.randomInt(hmin, hmax); // move this card card.move(x, y); // append this card to the window sequence window.appendPaintable(card); } window.repaint(); } }