ialand 2009-01-22 11:30
浏览 457
已采纳

关于JTextFiled无法获取当前输入的文本的问题

用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的依赖包我已经放在根目录下了

  • 写回答

7条回答 默认 最新

  • xuzhenqinandy 2009-01-27 17:30
    关注

    也就是说你不在代码中写

    id = new JTextField(15);
    nameTitle = new JLabel("员工姓名:");
    name = new JTextField(15);

    程序直接就在

    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;
    }

    上面这个地方return了.所以你下面的事件根本没有增加
    query.addActionListener(queryActionlistener);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决