Okay so basically I'm studying Introductory programming using the 'BlueJ' Java program on Mac. I'm trying to create a 'Dynamic Billboard' program that asks a user to enter a five letter word using the letters;
' S, P, A, R, E', then displays it in white on a black screen (or billboard).

Here is my coding below, for some reason the letters won't display on the console. Can anyone please provide some advice? I've googled it, talked to lecturers and read books on java.

import java.util.Scanner;
import billboard.BillboardInterface;
import billboard.DigitalBillboardFrame;

/**
 * My Partial solution for Stage 3 of the digital billboard. It doesn't work properly.
 * I tried getting help from the lecturer and also looking online and in the book.
 * it compiles fine and loops properly but does not display the letters on scree.
 *
 * @author phi of Edith Cowan University, Edited by Zena Axon
 * @version 2011 2
 */
public class Methodbillboard
{
    private static final int LETTER_WIDTH = 5;
    private static  final int LETTER_HEIGHT = 12;
    private static  final int GAP = 1;
    static Scanner USER_INPUT = new Scanner(System.in);
    private static final int START_X = 2;
    private static final int START_Y = 1;
    private static String inputString; 

    public static void main(String[] args)
    {

        // initial size of the display in pixels
        final int WINDOW_WIDTH = 300;
        final int WINDOW_HEIGHT = 120;
        // size of the grid for the digital billboard
        final int BB_WIDTH = 50;
        final int BB_HEIGHT = 30;

        // create a billboard
        BillboardInterface billboard = new DigitalBillboardFrame(
                "SCSS",
                WINDOW_WIDTH, WINDOW_HEIGHT,
                BB_WIDTH, BB_HEIGHT);

        billboard.allOff();

        for(;;)
        {
            USER_INPUT = new Scanner(System.in);
            System.out.println("Enter a 5 letter word made up of the letters ‘p’, ‘a’, ‘r’, ‘s’ and ‘e’ ");
            String input =  USER_INPUT.nextLine();
            // first make sure the display is blank

        }

    }

    private static void writeText(BillboardInterface billboard, int x, int y, char c)
    {

        writeLetter(billboard, x, y);
        // OK - ready to update the display
        billboard.redisplay(0);

    }

    private static void writeLetter(BillboardInterface billboard, int x, int y)
    {
        for(int i = 0; i < 5; i++)
        {
            // display the i_th letter   
            switch((inputString).charAt(i))
            {
                case 's':
                write_s(billboard, x, y);
                break;

                case 'p':
                write_p(billboard, x, y); 
                break;

                case 'a':
                write_a(billboard, x, y);
                break;

                case 'r':
                write_r(billboard, x, y);
                break;

                case 'e':
                write_e(billboard, x, y);
                break;

                default:
            }         
            writeLetter(billboard, x, y);

            x += LETTER_WIDTH + GAP;
            // display the letter

        } 
    }

    private static void write_s(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+1, START_Y+2);
        billboard.turnOn(START_X+2, START_Y+2);
        billboard.turnOn(START_X+3, START_Y+2);
        billboard.turnOn(START_X+4, START_Y+2);
        billboard.turnOn(START_X, START_Y+3);
        billboard.turnOn(START_X, START_Y+4);
        billboard.turnOn(START_X+1, START_Y+5);
        billboard.turnOn(START_X+2, START_Y+5);
        billboard.turnOn(START_X+3, START_Y+5);
        billboard.turnOn(START_X+4, START_Y+6);
        billboard.turnOn(START_X+4, START_Y+7);
        billboard.turnOn(START_X, START_Y+8);
        billboard.turnOn(START_X+1, START_Y+8);
        billboard.turnOn(START_X+2, START_Y+8);
        billboard.turnOn(START_X+3, START_Y+8);
  

    }

    private static void write_p(BillboardInterface billboard, int x, int y)
    {

        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+1, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+2, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+3, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+1, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+2, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+3, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+9);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+10);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+11);
    }

    private static void write_a(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+2, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+2, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+8);
    }

    private static void write_r(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+2, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+8);

    }

    private static void write_e(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+8);

    }
}

Recommended Answers

All 11 Replies

In main you set up a billboard, then around line 45 you enter an infinite loop getting input from the user, copying it to a local variable, and doing nothing with it. It doesn't display anything because you don't execute any code that could display something.
Ohn the other hand its probably a good thing that you don't call writeLetter, because that method calls itself five times, and will thus recurse until you very quickly run out of memory.

Ok, so my task is to ask the user to input any five letter word using 'SPARE'. and then my billboard should write each letter on screen in the correct location as to what the user entered. For example if user types pears then 'P' will be drawn first, then 'E' ect. That is why the writeletter method is called five times. (once for each letter drawn).

As for the forever loop. The program should ideally ask the user for input, draw the input on the billboard and then ask the user again for another word. infinitely.

Have I placed my infinite loop in the wrong section?

I understood the task. Please read my post again and address the problems it tells you about.

Ok so the first part of your message read:

In main you set up a billboard, then around line 45 you enter an infinite loop getting input from the user, copying it to a local variable, and doing nothing with it. It doesn't display anything because you don't execute any code that could display something.

What I get from that, is that I need to put in some code somewhere in my program which will execute the stuff I put in the forever loop? (as below).

for(;;)
        {
            USER_INPUT = new Scanner(System.in);
            System.out.println("Enter a 5 letter word made up of the letters ‘p’, ‘a’, ‘r’, ‘s’ and ‘e’ ");
            String input =  USER_INPUT.nextLine();
            // first make sure the display is blank
 
        }

So i'm missing some code which executes the above? and that's why my user input is not displaying?

Your loop displays a prompt on the console before taking user input. If you don't know whether that is being executed then you obviously haven't even tried to run your code, or you are just not thinking.
Anyway, even if that code is executed what do you think it will do? It gets user input and then...?

Your loop displays a prompt on the console before taking user input. If you don't know whether that is being executed then you obviously haven't even tried to run your code, or you are just not thinking.
Anyway, even if that code is executed what do you think it will do? It gets user input and then...?

I have indeed run the code many times during testing. The program DOES display a prompt, as you said, before taking user input. (exaclty what I wanted). It however, does not display the user's input on the billboard which is where I'm stuck. The loop works completely fine, it prompts the user for input continuously..... it's the actual drawing of white letters on the black screen that isn't happening. I feel that there maybe a problem with my char.At method, as this was mostly guess work.

Unfortunately for me, this is my first time ever programming anything and looking at the code is like looking at a foreign language. Thank you for taking the time to reply to my posts so far, it is very much appreciated.

One last time: you read the user input into the String input then... you do NOTHING. That's why nothing happens. You don't call any of your other methods after getting the input, so none of them are executed.

One last time: you read the user input into the String input then... you do NOTHING. That's why nothing happens. You don't call any of your other methods after getting the input, so none of them are executed.

Okay, I've made a few changes to my programming however, now it won't compile. Below I have highlighted in red and green the parts I have added in. I have attempted to call the nextLine method which formats the user input that was entered and stored in the variable 'inputString', and then returns it. I added in two lines of coding which I have highlighted in red below.

import java.util.Scanner;
import billboard.BillboardInterface;
import billboard.DigitalBillboardFrame;

/**
 * My Partial solution for Stage 3 of the digital billboard. It doesn't work properly.
 * I tried getting help from the lecturer and also looking online and in the book.
 * it compiles fine and loops properly but does not display the letters on scree.
 *
 * @author phi of Edith Cowan University, Edited by Zena Axon
 * @version 2011 2
 */
public class Methodbillboard
{
    private static final int LETTER_WIDTH = 5;
    private static  final int LETTER_HEIGHT = 12;
    private static  final int GAP = 1;
    static Scanner USER_INPUT = new Scanner(System.in);
    private static final int START_X = 2;
    private static final int START_Y = 1;
    private static String inputString; 

    public static void main(String[] args)
    {

        // initial size of the display in pixels
        final int WINDOW_WIDTH = 300;
        final int WINDOW_HEIGHT = 120;
        // size of the grid for the digital billboard
        final int BB_WIDTH = 50;
        final int BB_HEIGHT = 30;

        // create a billboard
        BillboardInterface billboard = new DigitalBillboardFrame(
                "SCSS",
                WINDOW_WIDTH, WINDOW_HEIGHT,
                BB_WIDTH, BB_HEIGHT);

        billboard.allOff();

        for(;;)
        {
            String inputString;
            USER_INPUT = new Scanner(System.in);
            System.out.println("Enter a 5 letter word made up of the letters 'p', 'a', 'r', 's' and 'e' ");
            String input =  USER_INPUT.nextLine();
            
            //Ok here I call a method to display my user input stored in the variable 'inputString'.
            writeText(billboard, START_X, START_Y, inputString);        }

    }

    private static void writeText(BillboardInterface billboard, int x, int y, String text)
    {
        for(int i = 0; i < 5; i++)
        {
         //Here I've attempted a calling of the write letter method for individual characters. 
writeLetter(billboard, int x, int y, char c);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
            x += LETTER_WIDTH + GAP;
            // display the letter

        } 

        // OK - ready to update the display
        billboard.redisplay(0);
    }

    private static void writeLetter(BillboardInterface billboard, int x, int y, char c)
    {
        // display the i_th letter   
        switch((inputString).charAt(i))
        {
            case 's':
            write_s(billboard, x, y);
            break;

            case 'p':
            write_p(billboard, x, y); 
            break;

            case 'a':
            write_a(billboard, x, y);
            break;

            case 'r':
            write_r(billboard, x, y);
            break;

            case 'e':
            write_e(billboard, x, y);
            break;

            default:
        }         
    }

    private static void write_s(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+1, START_Y+2);
        billboard.turnOn(START_X+2, START_Y+2);
        billboard.turnOn(START_X+3, START_Y+2);
        billboard.turnOn(START_X+4, START_Y+2);
        billboard.turnOn(START_X, START_Y+3);
        billboard.turnOn(START_X, START_Y+4);
        billboard.turnOn(START_X+1, START_Y+5);
        billboard.turnOn(START_X+2, START_Y+5);
        billboard.turnOn(START_X+3, START_Y+5);
        billboard.turnOn(START_X+4, START_Y+6);
        billboard.turnOn(START_X+4, START_Y+7);
        billboard.turnOn(START_X, START_Y+8);
        billboard.turnOn(START_X+1, START_Y+8);
        billboard.turnOn(START_X+2, START_Y+8);
        billboard.turnOn(START_X+3, START_Y+8);

    }

    private static void write_p(BillboardInterface billboard, int x, int y)
    {

        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+1, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+2, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+3, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+4, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+1, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+2, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP+3, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+9);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+10);
        billboard.turnOn(START_X+LETTER_WIDTH+GAP, START_Y+11);
    }

    private static void write_a(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+2, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+1, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+2, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+8);
    }

    private static void write_r(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+2, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+8);

    }

    private static void write_e(BillboardInterface billboard, int x, int y)
    {
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+2);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+3);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+4);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+5);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+6);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+3, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+6, START_Y+7);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+4, START_Y+8);
        billboard.turnOn(START_X+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+LETTER_WIDTH+GAP+5, START_Y+8);

    }
}

My program no longer compiles. Have I written these methods incorrectly?

My program no longer compiles.

please post the full text of the error messages.
Since you are using third party classes, you have provide more information.

Objectives from Unit Outline:
• demonstrate, at an introductory level, a knowledge of the vocabulary and
syntax of the Java language
• implement fundamental control structures and program sub-structures in
Java including classes and objects, methods and inheritance
Objectives:
• to write a program using classes
Assessment:
• Below you will find instructions for Stage 6 of the Workshop Assessment
Task for this unit.
Requirements for Stage 6:
The requirements for Stage 6 include those for Stage 5, except that
• your program must now include and make use of an additional class; and
• the program must now do the following:
1. Asks the user to enter a message to be displayed;
2. Displays the message on the billboard for 2 seconds, and then;
3. Scrolls the message left to right across the display until it disappears off
the right hand side, and then;
4. Scrolls the message left to right, starting from the left of the display, back
to where the message started, and then;
5. Flashes the message on and off 5 times (one second on then one second
off), and then;
6. Repeats steps 2 to 5 until the user terminates the program.


Instructions:
Follow these instructions, and ask your tutor for help if you get stuck.
1. Make a copy of your Stage 5 project folder and rename it Stage 6.
2. Rename FilesBillboard to ClassesBillboard.
3. Create a new class called Letters. Open it in the editor and delete the
template class body.
4. Cut the methods writeText, writeLetter, writeArray and readLetters from
the ClassesBillboard class and paste them into the Letters class.
5. Attempt to compile this class. It won’t compile – there are things to do to fix it
a. add import statements (you could copy from ClassesBillboard)
b. some constants should be moved from ClassesBillboard to Letters
(e.g. LETTER_PATH)
c. The array letters should be moved to Letters.
Make these corrections and compile Letters.
6. Now attempt to compile ClassesBillboard. It won’t compile – here is what you
need to do to fix it
a. The ClassesBillboard class is going to call methods from the Letters
class (readLetters and writeText) – these methods have to be made
public in Letters. Change them to public and recompile Letters.
b. The calls to readLetters and writeText now have to specify the class
as well as the method name. For example
readLetters();
must be changed to
Letters.readLetters();
Change the calls to these methods and recompile ClassesBillboard.
7. Everything should now compile correctly. Test and correct any errors.
8. While this works, it is even better if the ClassesBillboard class does not need
to know about readLetters. There is a way to fix this:
a. remove the call to readLetters from ClassesBillboard;
b. make readLetters private in Letters;
c. add a static block to letters. To do this, add the following code to
Letters, as though it was another method of the class. This code will
be automatically run when the program starts.
static
{
try
{
readLetters();
} catch (FileNotFoundException ex)
{
System.err.println(ex);
}
}
d. Make these changes, recompile, test and correct.
9. Now that the program is split across these two classes, the main method
doesn’t need to know anything about how Letters works – it just calls
writeText as needed. This is a much better design!
10. OK – so here comes your big task. The program now works, but it doesn’t do
what it is supposed to do – i.e. produce an animated display. This is your
final task.
I suggest you start by writing down what the program should do using
pseudocode. A hint or two:
a. Steps 2-5 will become an infinite loop;
b. Each of step 3, 4 and 5 will be a loop inside this infinite loop
11. Design, implement and test your solution.
12. Then you can tidy up and submit. Remember to fix up comments, tidy up
imports that are no longer needed, etc.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.