ActionListeners,多个字段更新以及从文件重新加载用户GUI选择

eve*_*oob 1 java swing awt auto-update jformattedtextfield

我有多个地方可以在一个坐标系和另一个坐标系之间进行转换.在每种情况下都有一个余弦/正弦计算,我们称之为x,y和x',y'.这些都是JFormattedTextFields.

如果用户在4中的任何一个中输入值,则调用ActionListener.让我们调用字段fieldx,fieldy,fieldx1和fieldy1.如果用户在fieldx或fieldy中输入任何内容,我将使用fieldx和fieldy中的当前值更新fieldx1和fieldy1的键盘和焦点侦听器(所有四个字段都是相同的).如果对侦听器的调用来自fieldx1或fieldy1,则会计算fieldx和fieldy.

然后我决定在配置文件中保存选择的字段(包括一堆复选框开/关和一些微调器的值)(开发后的新要求).我认为通过设置值和状态一切都会好的但是某些事情没有发生(幕后).我决定这部分是由于各种检查和输入等触发方法没有发生,因为当它们由一段代码设置时,字段没有触发键盘和焦点监听器.

在线阅读之后,我将所有的KeyboardAdapter更改为ActionListener,在我设置了值之后,我在上面提到的字段上调用了postActionEvent(),现在所有的后台内容都发生了(尽管顺序是一个问题,我将保存有关的额外信息)声明要正确更新.我做了这个改变是因为我认为解雇这么多假键盘事件会更加困难吗?

可能有更聪明/聪明的方法来做到这一点,但现在我试图不要触及太多的代码.

  1. 有没有人建议保存面板状态并刷新它(当前对象,面板)?

  2. 如果我继续这样做,有人可以建议一种方法来最小化ActionListener触发的时间吗?它似乎经常发射它是荒谬的!

我应该改变这里建议的事情吗?

您的类应该实现ActionListener还是使用匿名ActionListener类的对象

这似乎涉及更多的编码,但更精确的触发时...

如果这种问题/讨论在这里不合适,请告诉我:).只需输入此页面,我就会想到更多要阅读和尝试的内容.

tra*_*god 13

我试着不要碰太多代码.

这是一个基本的错误; 垃圾桶是一种重要的设计工具,在学习构建更复杂的应用程序时,一个或多个最小的例子将是非常宝贵的.

有没有人建议保存面板状态并刷新它(当前对象,面板)?

使用模型 - 视图 - 控制器模式,程序的数据应存储在合适的模型中,并且在模型元素在视图中呈现时应进行转换.该Converter示例显示了如何管理自定义事件,此示例扩展了该主题

如果我继续这样做,有人可以建议一种方法来最小化ActionListener触发的时间吗?

正如原始文章中所建议的那样,用于Action封装行为.请参阅使用MVC的Java SE应用程序设计:应用程序设计的问题,以便更深入地检查问题.

  • 优秀; 在始终学习的意义上,我也努力成为 _evernoob_。展望未来,您可以通过单击左侧的 [空复选标记](http://meta.stackoverflow.com/a/5235/163188) 来接受此答案。如果您提出相关问题,请发表评论。 (2认同)