Java从不同的方法获取文本字段值

时间:2013-09-27 10:21:38

标签: java text methods

我有两种方法,第一种方法是添加名称,第二种方法是显示在pageone中输入的名称。

但是如何指向文本域名来检索输入?

public WizardPage pageone() {

    WizardPage page = new WizardPage("one", "page 1");

    JTextField name = new JTextField();
    field.setName("Name");
    page.add(new JLabel("Enter your name: "));
    page.add(name);

    return page;

}

    public WizardPage pagetwo() {
    WizardPage page = new WizardPage("two", "page 2");

    JTextField displayName = new JTextField();
    displayName.setName("displayName");
    page.add(new JLabel("Your name is "));
    page.add(displayName);

    return page;

}

4 个答案:

答案 0 :(得分:1)

方法pagetTwo必须引用name JTextField。将name变量声明为类的字段,以便您可以使用pagetTwo方法读取字段内容。

这样的事情:

private JTextField name;

public WizardPage pageone() {

    WizardPage page = new WizardPage("one", "page 1");

    name = new JTextField();
    name.setName("Name");
    page.add(new JLabel("Enter your name: "));
    page.add(name);

    return page;

}

public WizardPage pagetwo() {
    WizardPage page = new WizardPage("two", "page 2");

    page.add(new JLabel("Your name is "));
    page.add(new JLabel(name.getText()));

    return page;

} 

答案 1 :(得分:1)

作为一个好的编码实践,在将文本值分配给pagetwo()之前总是进行空检查,这样即使忘记调用pageone(),它也不会破坏代码。

私人JTextField名称;

public WizardPage pageone(){

WizardPage page = new WizardPage("one", "page 1");

name = new JTextField();
name.setName("Name");
page.add(new JLabel("Enter your name: "));
page.add(name);

return page;

}

public WizardPage pagetwo(){     WizardPage page = new WizardPage(“two”,“page 2”);

page.add(new JLabel("Your name is "));
if(name != null){
   page.add(new JLabel(name.getText()));
} else {
   page.add(new JLabel(""));
}

return page;

}

答案 2 :(得分:0)

owh,在这种情况下,你需要将第一页的值存储到变量中,只需在方法2中调用变量,除非你在pagetwo中有嵌套方法执行pageone方法

String replaceName;

public WizardPage pageone() {

        WizardPage page = new WizardPage("one", "page 1");

        JTextField name = new JTextField();
        field.setName("Name");
        page.add(new JLabel("Enter your name: "));
        page.add(name);
    replaceName = name;


        return page;

    }

        public WizardPage pagetwo() {
        WizardPage page = new WizardPage("two", "page 2");

        JTextField displayName = new JTextField();
        displayName.setName("displayName");
        page.add(new JLabel("Your name is "));
        page.add(replaceName);

        return page;

    }

答案 3 :(得分:0)

将文本字段设为引用对象而不是本地对象。将JTextField声明为引用对象。即declare it outside the method or in a constructor