从类到另一个类获取变量

时间:2013-09-28 16:35:29

标签: java class oop variables getter-setter

我无法将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

2 个答案:

答案 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