如何在侦听器内部判断并给变量赋值

dxy2798 2016-09-23 10:05:20
程序中间有一段,需要在一个按钮queryButton上add一个侦听器,如果JTextField keyword为空,则字符串queryStr1 = "select * from IP_ADDRESS",否则queryStr1 = "select * from IP_ADDRESS where " + columnName + " like %" + keyword.getText() + "%"
但是运行总是出错,我觉得是变量的作用域设定有问题造成的,但是不知道怎么改,哪位教教我,万分感谢!


String queryStr1;
//如果关键字为空,点击查询按钮时保持sql不变,如果有内容,添加where子句
queryButton.addActionListener(event ->{
if (keyword != null)
{
queryStr1 = "select * from IP_ADDRESS";
}else{
queryStr1 = "select * from IP_ADDRESS where " + columnName + " like %" + keyword.getText() + "%";
}
});
rs = stmt.executeQuery(queryStr1);
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zycxnanwang 2016-09-23
  • 打赏
  • 举报
回复
引用 2 楼 dxy2798的回复:
[quote=引用 1 楼 zycxnanwang 的回复:] 感觉是变量访问的作用域的问题,建议使用内部类
您的意思是不是说lambda表达式内的引用外部的变量会造成错误?那么内部类不会有这种问题吗?[/quote] 我的意思是说你把监听器写在Frame类内部,这样就可以直接访问frame类的成员变量,你没有具体的代码,无法分析你具体错在那!
dxy2798 2016-09-23
  • 打赏
  • 举报
回复
引用 1 楼 zycxnanwang 的回复:
感觉是变量访问的作用域的问题,建议使用内部类
您的意思是不是说lambda表达式内的引用外部的变量会造成错误?那么内部类不会有这种问题吗?
zycxnanwang 2016-09-23
  • 打赏
  • 举报
回复
感觉是变量访问的作用域的问题,建议使用内部类

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧