最近做一个培训的答辩项目,卡在了一个关卡上。做的是模拟一个服装管理软件,做的库存调拨功能。

遇到的难题是,有两个窗体。窗体A和窗体B。

其中A窗体上有两个下拉栏(JComBox),分别为“调出仓库”和“调入仓库”,两个下拉栏中各位保存着一个字符串数组提供选择,数组内容为:正品仓与次品仓。然后窗体A上有一个选择商品添加按钮,点击后会触发监听事件弹出窗体B。

而窗体B上有一个文本框,一个查询按钮,以及一个带有滚动条的表单。表单则是当我获取了窗体A上的调出仓库选择条件到数据库进行匹配后显示返回的表单元素。(比如调出仓选择了正品仓,我就在窗体B的表单上显示所有正品仓的商品信息)。文本框是用来让用户输入商品编号或名称,然后在已经选择到的调出仓库条件并返回的结果集中进行查询。

现在我在窗体B的表单模型中写了一个方法,传递了三个字符串参数,然后在mouselistener的监听中重写了鼠标点击方法,请问,我要如何做到在调用窗体B表单模型的方法时,将分属于窗体A的调出仓库和调入仓库以及窗体B中的文本框输入信息这个三个参数进行同时传递,而不造成空指针异常。

我现在就是传递的数据一直都是空指针异常。使用输出语句在数据库访问层实现类中输出,也是null。首先我采用了get方法同时获取了调出仓,调入仓,输入的商品编号或者名称文本框中的值,并强制转型,赋值给定义的String类型的变量。然后使用if判断,当前窗体是否为窗体A,之后嵌套if判断是否点击了选择商品按钮,在嵌套if判断是否点击了查询按钮,如果条件都成立,调用表单模型填充标题元素的方法,将 三个参数进行传递(监听器--表单模型--业务逻辑--数据访问,再返回结果集)。只是现在我传递的参数永远为null。不明白错在哪里?求解答