用swing写了一个gui的小程序,想从JTextFiled里获取用户当前输入的文本,看了很多资料都是说用getText()方法,但是我用这个方法始终无法获取用户在这个JTextFiled里输入的文本,而是我硬编码在程序中的初始文本,请问各位要怎么样才能获取用户在JTextFiled里输入的当前文本呢?
[b]问题补充:[/b]
[code="java"]
if (id.getText() != null && !id.getText().equals("") && name.getText() != null && !name.getText().equals("")) {
queryActionlistener = new QueryAction(new Integer(id.getText()),
new HSSFRichTextString(name.getText()));
} else if (id.getText() != null && !id.getText().equals("") && name.getText() == null) {
queryActionlistener = new QueryAction(new Integer(id.getText()));
} else if (id.getText() == null && name.getText() != null && !name.getText().equals("")) {
queryActionlistener = new QueryAction(new HSSFRichTextString(name
.getText()));
} else {
return;
}
[/code]
这是代码,有点乱,见谅
[b]问题补充:[/b]
把上面的代码整理了一下:
[code="java"]
QueryAction queryActionlistener = null;
String inputId = id.getText();
String inputName = name.getText();
if (inputId != null && !inputId.equals("") && inputName != null
&& !inputName.equals("")) {
queryActionlistener = new QueryAction(new Integer(inputId),
new HSSFRichTextString(inputName));
} else if (inputId != null && !inputId.equals("")
&& (inputName == null || inputName.equals(""))) {
queryActionlistener = new QueryAction(new Integer(inputId));
} else if ((inputId == null || inputId.equals("")) && inputName != null
&& !inputName.equals("")) {
queryActionlistener = new QueryAction(new HSSFRichTextString(
inputName));
} else {
return;
}
query.addActionListener(queryActionlistener);
[/code]
另外,再把对应的内部类QueryAction的代码也贴出来,我是初学者,有任何不对的地方大家都可以指出来,谢谢!下面是QueryAction 的代码:
[code="java"]
private class QueryAction implements ActionListener {
EmployeeDO employee = new EmployeeDO();
public QueryAction(long id, HSSFRichTextString name) {
this.employee.setId(id);
this.employee.setName(name);
}
public QueryAction(long id) {
this.employee.setId(id);
};
public QueryAction(HSSFRichTextString name) {
this.employee.setName(name);
}
@Override
public void actionPerformed(ActionEvent e) {
QueryEmployeeResultDO resultDO = BaseService
.queryEmployee(employee);
if (resultDO == null) {
return;
}
employeeName.setText(resultDO.getName().getString());
employeeId.setText(String.valueOf(resultDO.getId()));
employeeTel.setText(resultDO.getTel().getString());
employeeAddress.setText(resultDO.getAddress().getString());
employeeBirthday.setText(resultDO.getBirthday().getString());
}
}
[/code]
最后再说明一下,这段代码的目的是想根据用户在JTextFiled里输入的name或者id来查询相应的人员信息,在测试的时候我将name或者id在代码里硬编码赋值是可以在GUI界面上查询出我指定的信息的,但是我在GUI界面的JTextFiled里输入的name或者id就不行,查出来的结果还是根据我硬编码进去的name或id所指定的信息,按理说JTextFiled.getText()是应该获取当前输入的文本的才对,而且这个问题应该不是我硬编码去初始化id或name导致的,因为即使不做任何初始化,还是无法通过
JTextFiled.getText()获取用户当前输入的文本,我实在搞不明白问题到底出在哪里,还请大家帮忙分析分析
[b]问题补充:[/b]
整个工程已压缩上传,见附件,其中用到了poi,可能需要你自己在本地重新导入一下poi的依赖包,poi的依赖包我已经放在根目录下了