我无法将class main
的变量转换为另一个类class members
...我曾尝试使用getter-setter但它只返回null
值,我怎么能修理它?这是我的代码:
Main.java
public class Main extends JFrame{
JTextField txt = new JTextField(10);
String value;
Main(){
getContentPane().add(txt);
this.value = txt.getText();
setLayout(new FlowLayout());
setSize(300,200);
setVisible(true);
}//constructor of main
public String getValue(){
return this.value;
}//getValue
public static void main(String args[]){
new Main();
}//psvm
}//class main
Members.java
public class Members extends JFrame{
JLabel lbl = new JLabel("");
Main main = new Main();
Members(){
getContentPane().add(lbl);
main.setVisible(false);
lbl.setText(main.getValue());
setLayout(new FlowLayout());
setSize(300,200);
setVisible(true);
}//constructor of main
public static void main(String args[]){
new Members();
}//psvm
}//class members
答案 0 :(得分:0)
在您的方案中,您将获得null值,因为在构造函数
中设置了值this.value = txt.getText();
确保在更新文本字段时更新this.value
JTextField txt = new JTextField(10);
将addListener添加到txt的更好方法
txt.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
//update value
}});
答案 1 :(得分:0)
在Members
- 类的代码中,有两个名为main
的成员 一个{{ 1}} - 类对象 和 一个Main
- 方法 。
根据 OOP 的原则,除了方法重载之外,一个类不能有多个名为的成员。
将main()
- 类对象的名称从Main
更改为main
或其他内容。希望这能解决你的问题。
使用以下代码段 -
main1