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