import javax.swing.JFrame; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Color; import java.util.ArrayList; import javax.swing.JComponent; /** This program draws Tartans, given a specification in terms of a Sett. */ public class A6 { // colors not available as constants from the Color class private static Color DARK_BLUE = new Color(0,0,127); private static Color DARK_GREEN = new Color(0,127,0); private static Color BROWN = new Color(95,35,0); /** A method to help check how setts themselves are drawn @return an ArrayList of Setts to be tested */ private static ArrayList initializeSetts() { ArrayList setts = new ArrayList(); Sett royalStewart = new Sett( new Color[] {Color.RED, Color.GRAY, Color.BLACK, Color.YELLOW, Color.BLACK, Color.WHITE, Color.BLACK, DARK_GREEN, Color.RED, Color.BLACK, Color.RED, Color.WHITE}, new int[] {72, 8, 12, 2, 2, 2, 2, 16, 8, 2, 4, 2}); setts.add(royalStewart); Sett blackWatch = new Sett( new Color[] {DARK_BLUE, Color.BLACK, DARK_BLUE, Color.BLACK, DARK_BLUE, Color.BLACK, DARK_GREEN, Color.BLACK, DARK_GREEN, Color.BLACK, DARK_BLUE, Color.BLACK, DARK_BLUE, Color.BLACK}, new int[] {22, 2, 2, 2, 2, 2, 16, 16, 2, 16, 16, 16, 2, 2}); setts.add(blackWatch); Sett macLeod = new Sett( new Color[] {Color.RED, Color.BLACK, DARK_GREEN, Color.BLACK, DARK_BLUE, Color.BLACK, Color.YELLOW}, new int[] {6, 4, 30, 20, 40, 4, 4}); setts.add(macLeod); Sett macDonald = new Sett( new Color[] {DARK_GREEN, Color.RED, DARK_GREEN, Color.RED, DARK_GREEN, Color.BLACK, Color.RED, DARK_BLUE, Color.RED, DARK_BLUE, Color.RED, DARK_BLUE}, new int[] {16, 2, 4, 6, 24, 24, 2, 24, 6, 4, 2, 16}); setts.add(macDonald); return setts; } /** A method to help check how tartans themselves are drawn @return an ArrayList of Setts whose tartans can be tested */ private static ArrayList initializeSettsForTartans() { ArrayList setts = new ArrayList(); Sett robRoy = new Sett( new Color[] {Color.RED, Color.BLACK}, new int[] {8, 8}); setts.add(robRoy); Sett macQuarrie = new Sett( new Color[] {Color.RED, DARK_GREEN, Color.RED, DARK_GREEN, Color.RED, DARK_GREEN}, new int[] {32, 2, 2, 2, 8, 24}); setts.add(macQuarrie); Sett napier = new Sett( new Color[] {Color.WHITE, DARK_BLUE, Color.BLACK, Color.WHITE, Color.BLACK, Color.WHITE, Color.BLACK, Color.WHITE, Color.BLACK, Color.WHITE, Color.BLACK}, new int[] {2, 24, 8, 4, 4, 8, 4, 4, 4, 4, 8}); setts.add(napier); Sett brodie = new Sett( new Color[] {Color.BLACK ,Color.RED, Color.BLACK ,Color.YELLOW, Color.BLACK, Color.RED}, new int[] {4, 32, 16, 2, 16, 4}); setts.add(brodie); return setts; } /** A method to check the drawing of setts and tartans @param args is ignored */ public static void main(String[] args) { // get and draw some setts ArrayList setts = initializeSetts(); for (int i=0; i settsForTartans = initializeSettsForTartans(); for (int i=0; i