3

This question has been asked before, but even after reading:

Java "Get" and "Set" Methods

Java Get/Set method returns null

And more I still don't understand how to solve my problem.

When accessing variables in a class using get methods from another class I receive the value null.

How do I recieve my correct values instead of null?


This is the class where I try to get my variables FROM (not everything included).

public class RLS_character_panel extends javax.swing.JPanel implements ActionListener, ItemListener { 

    private String name1 = "hello"; 

    public String getName1() { 
        return name1; 
    } 

    public void setName1(String name1) { 
        this.name1 = name1; 
    } 

} 

This is the class where i try to get the values TO. This class extends JFrame so that I can add a JPanel which displays the variable. (the JPanel is yet another class called: RLS_strid_panel , which is added upon this frame).

public class RLS_strid_java extends JFrame { 

    RLS_character_panel test = new RLS_character_panel(); 

    String name1 = test.getName1(); 

    RLS_strid_panel p = new RLS_strid_panel(namn1); 

    // constructor
    public RLS_strid_java(String titel) { 
        super(titel); 
        this.setSize(1000, 772); 
        this.setVisible(true); 
        this.setResizable(false); 
        this.add(p); 
    } 
}

the Jpanel Displays null.

Jonatan Jonsson
  • 49
  • 1
  • 1
  • 2
  • 4
    When you step through the code in your debugger, can you see which value is `null`? – Peter Lawrey Mar 19 '16 at 14:13
  • 4
    Oh, man, the naming! Respect the Java naming conventions, and give meaningful name ro your classes. And show us the code displaying the value. – JB Nizet Mar 19 '16 at 14:17
  • How are you constructing the "outer" `RLS_strid_java`? The "subpanel" `p` is looks fine, but how are you calling the constructor of `RLS_strid_java` from outside the class? – Alex Shesterov Mar 19 '16 at 14:18
  • The code displaying the value : public RLS_strid_panel(String namn1 ) { initComponents(); namn11_lbl.setText(namn1); } – Jonatan Jonsson Mar 19 '16 at 15:03
  • You should add your stacktrace. – Debosmit Ray Mar 20 '16 at 20:45
  • When you convert this Java code to Kotlin, it causes all sorts of bugs and asks you to use the property access directly instead of getMyProperty() or setMyProperty(). You need to manually move these functions to the Kotlin getter / setter: https://stackoverflow.com/questions/37906607/getters-and-setters-in-kotlin – Michael N Dec 13 '21 at 10:27

2 Answers2

4

To understand get and set, it's all related to how variables are passed between different classes.

The get method is used to obtain or retrieve a particular variable value from a class.

A set value is used to store the variables.

The whole point of the get and set is to retrieve and store the data values accordingly.

What I did in this old project was I had a User class with my get and set methods that I used in my Server class.

The User class's get set methods:

public int getuserID()
    {
        //getting the userID variable instance
        return userID;
    }
    public String getfirstName()
    {
        //getting the firstName variable instance
        return firstName;
    }
    public String getlastName()
    {
        //getting the lastName variable instance
        return lastName;
    }
    public int getage()
    {
        //getting the age variable instance
        return age;
    }

    public void setuserID(int userID)
    {
        //setting the userID variable value
        this.userID = userID;
    }
    public void setfirstName(String firstName)
    {
        //setting the firstName variable text
        this.firstName = firstName;
    }
    public void setlastName(String lastName)
    {
        //setting the lastName variable text
        this.lastName = lastName;
    }
    public void setage(int age)
    {
        //setting the age variable value
        this.age = age;
    }
}

Then this was implemented in the run() method in my Server class as follows:

//creates user object
                User use = new User(userID, firstName, lastName, age);
                //Mutator methods to set user objects
                use.setuserID(userID);
                use.setlastName(lastName);
                use.setfirstName(firstName);               
                use.setage(age); 
Osiris93
  • 296
  • 2
  • 18
0

your panel class don't have a constructor that accepts a string

try change

RLS_strid_panel p = new RLS_strid_panel(namn1);

to

RLS_strid_panel p = new RLS_strid_panel();
p.setName1(name1);
Komgcn
  • 323
  • 2
  • 12