The following text was written to the standard output stream when the Number2 program was executed from Netbeans.
/* * Program to paint a rectangle, centered in the canvas, made up of randomly * colored, black framed squares. */ package npw; import java.awt.Color; import java.util.Random; import java.util.Scanner; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import painter.SPainter; import shapes.SSquare; /** * * @author dmaslows */ public class Number2 { /** * @param args the command line arguments */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Number2(); } }); } public Number2() { paintTheImage(); } private void paintTheImage() { int nrofrows = getNumber("rows"); int nrofcolumns = getNumber("columns"); int sizeofsquare = getNumber("square side length"); int height = nrofrows * sizeofsquare; int width = nrofcolumns * sizeofsquare; SPainter miro = new SPainter("Number 2",width+50,height+50); miro.setBrushWidth(4); SSquare square = new SSquare(sizeofsquare); paintRectangle(miro,square,nrofrows,nrofcolumns); } private static int getNumber(String prompt) { String nss = JOptionPane.showInputDialog(null,prompt+"?"); Scanner scanner = new Scanner(nss); return scanner.nextInt(); } private static void paintRectangle(SPainter miro, SSquare square, int nrofrows, int nrofcolumns) { miro.mlt(((nrofcolumns-1)/2.0)* square.side()); miro.mbk(((nrofrows-1)/2.0)* square.side()); int i = 1; while ( i <= nrofrows) { paintOneRow(miro,nrofcolumns,square); miro.mfd(square.side()); i = i+1; } miro.mrt(((nrofcolumns-1)/2.0) * square.side()); miro.mfd(((nrofrows-1)/2.0) * square.side()); } private static void paintOneRow(SPainter miro, int nrofcolumns, SSquare square){ int i = 1; while ( i <= nrofcolumns) { paintOneSquare(miro,square); miro.mrt(square.side()); i = i+1; } miro.mlt(nrofcolumns*square.side()); } private static void paintOneSquare(SPainter miro, SSquare square) { miro.setColor(randomColor()); square.s2(); miro.paint(square); miro.setColor(Color.BLACK); miro.draw(square); square.x2(); } private static Color randomColor() { Random rgen = new Random(); int r = rgen.nextInt(256); int g = rgen.nextInt(256); int b = rgen.nextInt(256); return new Color(r,b,g); } }