描述: 一个JPanel,有一个文本框和一个按钮。 按钮按下,检测文本框输入的数据,如果输入值不合规,则显示一个提示对话框,并设置当前焦点为文本框。
我的想法是: Button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { 检测(Object 文本框输入值) { 检测代码 if(条件) { 提示对话框 设置焦点 } } } }
因为是一个匿名内部类,所以可以访问外部类的文本框等等。 但这样,不就把业务代码放到了界面中去了吗?
如果改为 public void actionPerformed(java.awt.event.ActionEvent e) { 检测类.检测方法(Object 文本框输入值) }
那么在检测类里,如何设置文本框代码的焦点呢?要设置就需要一个这个Panel的引用,那这是不是循环引用? (界面)按钮 -〉 匿名事件处理 -〉处理类 -〉界面反馈
事件处理机制中,这算不算是 A类引用B类,B类引用C类,C类又引用A类。像这种界面发生事件,提交给业务处理模块进行处理,最后界面又需要得到反馈的类型,有没有什么比较好的思想或模式。 学习,谢谢。
|
|