要获得用户输入,您必须使用getText()
而不是getName()
。要获得用户输入,您可以采用观察者模式的方法。
在AddressBook
创建一个观察者来监听来自文本字段的变化 AddressBookInterface
。
然后您的代码将如下所示。
class AddressBookInterface {
JTextField txt = new JTextField();
public void registerListener(String name, PropertyCHangeListener listener){
txt.addPropertyChangeListener(name,listener);
}
}
class AddressBook {
String input;
private PropertyChangeListener listener = new MyPropertyChangeListener();
public PropertyChangeListener getListener(){
return listener;
}
private class MyPropertyChangeListener implements PropertyChangeListener{
@Override
public void propertyChange(PropertyChangeEvent evt){
if(evt == null)
return;
if(evt.getPropertyName().equals("text")){
input = (String) evt.getNewValue();
}
}
}
}
在您创建对象的某个地方。
AddresBookInterface addres = new AddresBookInterface();
AddresBook book = new AddresBook();
addres.registerListener("text",book.getListener());