所以,我创建了自己的名为Guidelines的类,当用户按下某个按钮时,它将包含我想在新窗口中显示的一些文本。
public class Guidelines {
public Guidelines(String buttonName){
guidelines(buttonName);
}
private String guidelines(String buttonName){
String content = "";
if (buttonName.equals("norman"))
content = "Norman is the man!";
if (buttonName.equals("nielsen"))
content = "Nielsen is the best!";
if (buttonName.equals("fitt"))
content = "Fitt rocks!";
return content;
}
}
但是当我在我的主要类中调用这个类时:
Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(String.valueOf(content));
我没有得到像"Norman is the man!"
这样的字符串,而是uv.Guidelines@12ce0bf
之类的字符串。我想将对象转换为字符串存在问题。我怎样才能得到字符串?
答案 0 :(得分:1)
执行字符串内容类字段,定义方法getContent并执行:
JTextArea textArea = new JTextArea(Guidelines.getContent());
示例:
public class Guidelines {
String content;
public Guidelines(String buttonName){
guidelines(buttonName);
}
private String guidelines(String buttonName){
if (buttonName.equals("norman"))
content = "Norman is the man!";
if (buttonName.equals("nielsen"))
content = "Nielsen is the best!";
if (buttonName.equals("fitt"))
content = "Fitt rocks!";
return content;
}
public String getContent(){
return content;
}
}
然后
Guidelines content = new Guidelines("norman");
JTextArea textArea = new JTextArea(content.getContent());
答案 1 :(得分:1)
你可以覆盖toString方法,
public class Guidelines {
private final String content;
public Guidelines(String buttonName){
content = guidelines(buttonName);
}
private String guidelines(String buttonName){
String content = "";
if (buttonName.equals("norman"))
content = "Norman is the man!";
if (buttonName.equals("nielsen"))
content = "Nielsen is the best!";
if (buttonName.equals("fitt"))
content = "Fitt rocks!";
return content;
}
@Override
public String toString() {
return content;
}
}
然后,您可以调用toString方法来获取内容的值
Guidelines content = new Guidelines("norman");
TextArea textArea = new JTextArea(content.toString());

答案 2 :(得分:1)
根据你的代码你正在做的是你正在定义一个带有构造函数名Guidelines
的类,它接受一个字符串值,你有一个名为guidelines
的方法,它返回一个String并接受一个字符串值。
现在,当您创建对象/实例
时Guidelines content = new Guidelines("norman");
它为您创建一个Guidelines对象,并通过传递norman来调用方法guidelines(String buttonName)
。现在正在调用构造函数,构造函数正在调用该方法,但构造函数不会返回任何内容。所以每当你写作
Guidelines content = new Guidelines("norman");
引用变量在我们的case内容中保存对象的引用。如果您打印引用变量,您将看到hashCode
的特定对象的uv.Guidelines@12ce0bf
。
您只需要执行对方法guidelines(String buttonName)
的调用,并且为了调用您必须将该方法声明为公共方法。
String buttonName = content.guidelines("norman);
然后传递变量buttonName
JTextArea textArea = new JTextArea(buttonName);
或者您可以直接致电
JTextArea textArea = new JTextArea(String.valueOf(content.guidelines("norman")));