我正在尝试使用 NetBeans 在 Java 中创建一个框架。它将显示一些数据,同时在一个while循环中从用户那里获取数据。
我可以暂停while
循环直到按下确认按钮吗?我发现有人可能会建议睡觉,但由于我必须让用户输入数据,我无法预测他们要花多长时间。
我正在尝试使用 NetBeans 在 Java 中创建一个框架。它将显示一些数据,同时在一个while循环中从用户那里获取数据。
我可以暂停while
循环直到按下确认按钮吗?我发现有人可能会建议睡觉,但由于我必须让用户输入数据,我无法预测他们要花多长时间。
GUI 的事件驱动模型破坏了顺序逻辑代码。
为了保持顺序逻辑,可以维护一个state,例如一个枚举:
enum State {
PROMPTING,
ASKING_TWO_FIELDS,
ASKING_THREE_FIELDS,
CALCULATING,
DONE
};
private State state = State.DONE;
(这种显式抽象通常只需要从顺序逻辑的转换,或同一表单上的多个状态。)
然后按下按钮等更改状态并禁用/启用输入组件。
事件异步发生,甚至可能在不同的线程上。必须编写响应式代码。在准备事情时,将按下按钮时应该发生的事情联系在一起。这是非常零碎的。
解决这种混乱的一种方法是分成模型-视图-控制类。模型类包含数据,视图是 GUI 组件,一个控制器,即应用程序,从视图中调用,设置数据并控制视图。
从视图中调用是为了使用侦听器完成摆动。
一个食谱:
startTranslating
在应用程序上放置的文本), manualTranslationDone
(手动编辑后按下“翻译”按钮)。