Tom T
Tom T

Reputation: 59

Calling an array from a different class - Java

How can I access my array from a different class? I have 3 classes; Main (where I want to access the array from) FramePanel (my GUI and where the value from UserInputNum is taken from) and StoryArray (where my array is saved).

I need to access the array in the nested If loop in the Main class, this is because I want too save the specific array data to a string and eventually append it into a JTextArea.

Here are the two classes needed:

Main.java

public class Main
{
    public static String UserInput;
    public static int UserInputNum;

    public static void main(String[] args)
    {
        FramePanel.main();
        StoryArray.main();

        UserInputNum = Integer.parseInt(UserInput);
        if (UserInputNum >= 0)
        {
            if (UserInputNum <= 399)
            {
                StoryArray.storyLine[UserInputNum];
            }
            else
            {

            }
        }
        else
        {

        }
    }
}

StoryArray.java

public class StoryArray
{
    public static String storyLine[] = null ;
    public String[] getStoryLine()
    {
        return storyLine;
    }
    public static void main()
    {
        //String[] storyLine;
        storyLine = new String[399];
        storyLine[0] ("1")
        storyLine[1] ("2")
        storyLine[2] ("3")
        storyLine[3] ("4")
        storyLine[4] ("5")
        storyLine[5] ("6")

Upvotes: 1

Views: 2516

Answers (3)

Abdelhak
Abdelhak

Reputation: 8387

In another class you can call the array like this:

 String value = StoryArray.storyLine[index];

Upvotes: 2

James McDowell
James McDowell

Reputation: 2768

Once you've called StoryArray.main(), then you should be able to do StoryArray.storyLine[/*element id*/] = "whatever you want" to get or set any element in storyLine. Additionally, you aren't defining any default array values. In StoryArray.main(), you need to have lines of the form storyLine[n] = "n".

Upvotes: 1

Mateusz Dryzek
Mateusz Dryzek

Reputation: 661

As it is a static public field you can access it directly by StoryArray.storyLine. But as you have a getter ethod I would suggest to make this getter setter static and the array field private and access it through getter method like that: StoryArray.getStoryLine() (to see why read about encapsulation).

You also shouldn't start your class (main) name from lower case, here are standard coding conventions for java language: http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

Upvotes: 1

Related Questions