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

我有多个地方可以在一个坐标系和另一个坐标系之间进行转换。 在每种情况下都有一个余弦/正弦计算,我们称之为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类的对象

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

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

我试着不要碰太多代码。

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

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

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

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

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

Interesting Posts