The following text was written to the standard output stream when the Number4.java 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 javax.swing.JOptionPane; import javax.swing.SwingUtilities; import painter.SPainter; import shapes.SCircle; import java.util.Scanner; /** * * @author ecuevas */ public class Number4 { /** * @param args the command line arguments */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable(){ public void run() { new Number4(); } }); } public Number4(){ paintTheImage(); } // The Solution To The Graphical Problem private void paintTheImage(){ // GRAB THE INPUT INFORMATION int nrOfRows = getNumber("rows"); int nrOfColumns = getNumber("columns"); int sizeOfCircle = getNumber("diameter side length"); Color colorName = getColor(); // ESTABLISH THE PAINTER int height = nrOfRows * sizeOfCircle; int width = nrOfColumns * sizeOfCircle; SPainter miro = new SPainter("Number 4",width+50,height+50); miro.setBrushWidth(4); SCircle dot = new SCircle(sizeOfCircle); // PAINT THE RECTANGLES paintRectangle(miro,dot,nrOfRows,nrOfColumns,colorName); } private static int getNumber(String prompt) { String nss = JOptionPane.showInputDialog(null,prompt+"?"); Scanner scanner = new Scanner(nss); return scanner.nextInt(); } private static Color getColor( ) { String command = JOptionPane.showInputDialog(null,"color?"); Color color = Color.red; if(command.equalsIgnoreCase("red")) { } else if (command.equalsIgnoreCase("blue")) { color = Color.BLUE; } else if (command.equalsIgnoreCase("green")) { color = color.GREEN; } else { color = color.black; } return color; } private static void paintRectangle(SPainter miro, SCircle dot, int nrOfRows, int nrOfColumns, Color color) { // POSITION THE PAINTER TO PAINT THE RECTANGLE OF SQUARES miro.mlt(((nrOfColumns-1)/2.0)*dot.diameter()); miro.mbk(((nrOfRows-1)/2)*dot.diameter()); // PAINT THE RECTANGLE OF SQUARES int i = 1; while (i <= nrOfRows){ paintOneRow(miro,nrOfColumns,dot,color); miro.mfd(dot.diameter()); i = i + 1; } // MAKE THE METHOD INVARIANT WITH RESPECT TO PAINTER POSITION miro.mrt(((nrOfColumns-1)/2.0)*dot.diameter()); miro.mfd(((nrOfRows-1)/2.0)*dot.diameter()); } private static void paintOneRow(SPainter miro, int nrOfColumns, SCircle dot, Color color) { int i = 1; while (i <= nrOfColumns ){ paintOneCircle(miro,dot,color); miro.mrt(dot.diameter()); i = i + 1; } miro.mlt(nrOfColumns*dot.diameter()); } private static void paintOneCircle(SPainter miro, SCircle dot, Color color) { dot.s2(); miro.setColor(color); miro.paint(dot); miro.draw(dot); dot.x2(); } }