此问题之前已被提出,但即使在阅读之后:
Java Get/Set method returns null
还有更多我仍然不明白如何解决我的问题。
当使用来自另一个类的get方法访问类中的变量时,我收到值null。
如何接收正确的值而不是null?
这是我尝试获取变量FROM的类(不包括所有内容)。
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;
}
}
这是我尝试获取值TO的类。这个类扩展了JFrame,以便我可以添加一个显示变量的JPanel。 (JPanel是另一个名为RLS_strid_panel的类,它在此帧上添加)。
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);
}
}
Jpanel显示为空。
答案 0 :(得分:3)
要理解get和set,它们都与变量在不同类之间传递的方式有关。
get方法用于从类中获取或检索特定变量值。
设定值用于存储变量。
get和set的重点是相应地检索和存储数据值。
我在这个旧项目中所做的是我有一个User类,其中包含我在Server类中使用的get和set方法。
User类的get set方法:
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;
}
}
然后,这在我的Server类中的run()
方法中实现,如下所示:
//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);
答案 1 :(得分:0)
您的面板类没有接受字符串的构造器
尝试更改
RLS_strid_panel p = new RLS_strid_panel(namn1);
到
RLS_strid_panel p = new RLS_strid_panel();
p.setName1(name1);