当前位置: 首页 > 面试题库 >

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

鲍飞星
2023-03-14
问题内容

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

这似乎涉及更多的编码,但是在什么情况下触发时更精确…

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


问题答案:

我正在尝试不触及太多代码。

这是一个根本性的错误。垃圾桶是一种重要的设计工具,在学习编写更复杂的应用程序时,一个或多个最少的示例将非常宝贵。

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

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

如果我继续以这种方式进行操作,有人可以建议一种最小化ActionListener触发时间的方法吗?

如原始[文章中](http://codingdict.com/questions/121390所建议,用于Action封装行为。有关对该问题的更深入研究,请参阅带有MVC的JavaSE应用程序设计:应用程序设计
问题。



 类似资料:
  • 您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解正确的语法....

  • 我使用的是advanced element form multi-select。当我使用multi-select插入表单的一个字段时,它可以完美地插入。 但是当我使用相同的表单更新多选择字段时,此时在选择输入标签中不会选择以前的插入值。它是在下拉列表中选择的,我也不能改变选择的字段。 我遵循这个选择2文件 笔记 ajax响应工作正常 cdn、css和javascript正确集成 我试过这些代码 J

  • 问题内容: 我正在构建一个Swing应用程序,功能的一部分应该是视觉和听觉上(使用Mary TTS)处理和输出一些文本。我需要一些有关GUI和文本处理类进行通信的最佳方式的建议。 GUI类是JPanel的子类。在其中,我有一个实现Runnable的类,称为LineProcesser,它准备将要分发给音频播放器的文本。我正在使用线程执行器将其保留在EDT之外(这可能不是最好的方法,但它似乎达到了我追

  • 我想实现类似于http://www.primefaces.org/showcase/ui/pprSelect.jsf的东西,但我需要一个双组合的集合,所以我把它包装在ui:重复 我需要在后端检查双组合集合中的哪个元素已更改,以及需要重新加载的内容。对于通信,如示例中所示,使用了p:ajax,但AjaxBehaviorEvent没有给我带来任何元素索引的概念(我指的是由ui生成的双组合元素的索引:r

  • 问题内容: 我只是很好奇,因为我已经在FragmentActivity中设置了Fragment选项卡,如何从FragmentActivity或Fragment本身重新加载片段,以清除并重新加载该选项卡。我本质上需要重新选择选项卡以替换片段时发生的相同事情。有一种简单的方法可以执行此操作并重新加载片段吗? 问题答案: 创建一个方法,该方法开始FragmentTransaction,分离片段,然后提交

  • 绞尽脑汁,但似乎找不到解决方案。我有一个位于Azure存储blob上的. ttf字体文件,用于我的Azure应用服务站点上的自定义字体。我收到此文件的404“资源未找到”错误。 在阅读了大量关于这方面的文档之后,我似乎需要在web上添加几行代码,以创建一个新的“mimetype”。配置文件。Azure的旧版本在“扩展”或“应用程序设置”中有此功能。 其他人在Kudu的“Debug”选项下显示了这样