1

我有一个 JFrame,当用户按下按钮时,会显示一个输入 jdialog。我需要 jdialog 处于非模态模式,一旦用户按下确定,我想根据输入执行一些操作。现在我将我的视图作为 jdialog 中的引用传递,因此当用户按下 ok 时,jdialog 会调用视图的方法。有没有更标准化的方法来处理这个问题,或者这是唯一的方法?我需要 jdialog 处于非模态模式

谢谢

4

2 回答 2

1

当用户按下 ok 按钮时,您可以传递java.lang.Runnable从 JDialog 调用的 a。通过这种方式,您可以将要运行的代码放入 Runnable 本身。

于 2010-09-06T08:02:37.170 回答
1

您当前使用回调的方法很简单,但观察者模式通常用于减少由此产生的紧密耦合。Swing 中有两种典型的实现:

  1. 安排您的视图实现Observer接口,并将您的输入窗口委托给包含的Observable. 该notifyObservers()方法可用于将对象引用传递给Observer. 一个非常简单的例子可以在这里找到。

  2. 让您的输入窗口EventListenerList使用视图注册感兴趣的自定义事件来维护。侦听器感兴趣的数据可以在事件本身中传递。javax.swing.event在这种类型上重用现有的或为自定义事件建模可能会很方便。每个都JComponent包含一个EventListenerList.

于 2010-09-06T09:21:47.607 回答