1

我有两种方法,第一种方法是添加名称,第二种方法是显示在 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

4 回答 4

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;

} 
于 2013-09-27T10:29:16.033 回答
1

作为一种良好的编码习惯,在将文本值分配给 pagetwo() 之前始终进行 null 检查,这样即使您忘记调用 pageone(),它也不会错误地破坏代码。

私有 JTextField 名称;

公共 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;

}

于 2013-09-27T11:03:43.933 回答
0

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

于 2013-09-27T10:37:13.900 回答
0

哦,在这种情况下,您需要将第一页中的值存储到一个变量中,然后在方法 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;

    }
于 2013-09-27T10:28:43.807 回答