/************************************************************************************************** * Program Name: Console Library * Author: Terry Weiss * Date Written: January 23, 2016 * Program Description: * This library allows for text padding from the left or right, and text centering. Currently * all console output is designed for an 80x24 output window. Currently whitespace escape * characters are not supported and will interfere with right padding and centering. **************************************************************************************************/ public class Console { //class constants public static final int WIDTH = 80; //Number of columns in console output public static final int ROWS = 24; //Number of rows in console output //class variables /*********************************************************************************************** * Method Name : Console - padLeft * Author : Terry Weiss * Date : January 24, 2016 * Course/Section : CSC264-001 * Program Description: * This method will generate a new string that is left-aligned and has been padded from the left * edge of the screen. * * BEGIN Pad Left * IF (pad is too big) THEN * Align on right side of screen * END IF * Generate format string * Return formatted string * END Pad Left ***********************************************************************************************/ public static String padLeft(int pad, String str) { //local constants //local variables String format; //Format string to be used by String.format() /******************** Start padLeft method ********************/ /* * IF (pad is too big) THEN * Align on right side of screen * END IF */ if (pad + str.length() > WIDTH) { pad = WIDTH - str.length(); }//end if //Generate format string format = "%" + pad + "s%s"; //Return formatted string return String.format(format, "", str); }//end method padLeft /*********************************************************************************************** * Method Name : Console - padRight * Author : Terry Weiss * Date : January 24, 2016 * Course/Section : CSC264-001 * Program Description: * This method will generate a new string that is right-aligned and has been padded from the * right edge of the screen. * * BEGIN Pad Right * IF (pad is too big) THEN * Align on left side of the screen * END IF * Generate format string * Return formatted string * END Pad Right ***********************************************************************************************/ public static String padRight(int pad, String str) { //local constants //local variables String format; //Format string to be used by String.format() /******************** Start padRight method ********************/ /* * IF (pad is too big) THEN * Align on left side of screen * END IF */ if (pad + str.length() > WIDTH) { pad = 0; }//end if //Generate format string format = "%" + (WIDTH - pad) + "s"; //Return formatted string return String.format(format, str); }//end method padRight /*********************************************************************************************** * Method Name : Console - center * Author : Terry Weiss * Date : January 24, 2016 * Course/Section : CSC264-001 * Program Description: * This method will generate a new string that is center-aligned. * * BEGIN Center * Calc pad length as (width - string length) / 2 * Generate format string * Return formatted string * END Center ***********************************************************************************************/ public static String center(String str) { //local constants //local variables int pad; //Number of padding spaces before the string String format; //Format string to be used by String.format() /******************** Start center method ********************/ //Calc pad length pad = (WIDTH - str.length()) / 2; //Generate format string format = "%" + pad + "s%s"; //Return formatted string return String.format(format, "", str); }//end method center /*********************************************************************************************** * Method Name : Console - clearScreen * Author : Terry Weiss * Date : January 24, 2016 * Course/Section : CSC264-001 * Program Description: * This method will push all text off the screen. The cursor will start at the bottom, and the * output will need to be pushed up with fillScreen. * * BEGIN Clear Screen * FOR (number of rows) DO * Display a blank line * END FOR * END Clear Screen ***********************************************************************************************/ public static void clearScreen() { //local constants //local variables /******************** Start clearScreen method ********************/ /* * FOR (number of rows) DO * Display a blank line * END FOR */ for (int i = 0; i < ROWS; i++) { System.out.println(); }//end for }//end method clearScreen /*********************************************************************************************** * Method Name : Console - fillScreen * Author : Terry Weiss * Date : January 24, 2016 * Course/Section : CSC264-001 * Program Description: * This method will push the text on screen up to the top of the screen. Enter the number of * rows currently on screen as input. * * BEGIN Fill Screen * Calc rows * FOR (number of rows to fill) DO * Display a blank line * END FOR * END Fill Screen ***********************************************************************************************/ public static void fillScreen(int rows) { //local constants //local variables /******************** Start fillScreen method ********************/ //Calc rows rows = ROWS - rows; /* * FOR (number of rows to fill) DO * Display a blank line * END FOR */ for (int i = 0; i < rows; i++) { System.out.println(); }//end for }//end method fillScreen /*********************************************************************************************** * Method Name : Console - main * Author : Terry Weiss * Date : January 24, 2016 * Course/Section : CSC264-001 * Program Description: * The main method is used for debugging and testing purposes. * * BEGIN Main * Clear screen * Draw debug ruler * Test pad left * Test pad right * Test center * Fill screen * END Main ***********************************************************************************************/ public static void main(String[] args) { //local constants //local variables /******************** Start main method ********************/ //Clear screen Console.clearScreen(); //Draw debug ruler System.out.println("123456789 123456789 123456789 123456789 123456789 123456789 123456789 " + "123456789*"); //Test pad left System.out.println(Console.padLeft(20, "pizza")); //Test pad right System.out.println(Console.padRight(20, "cake")); //Test center System.out.println(Console.center("tacos")); //Fill screen Console.fillScreen(4); }//end method main }//end class Console