1

我有一堂课GuiApplication和一堂课ImageHandler。GUI 可以通过ImageHandler一个名为的类使用(以及图像),该类Crawler为 GUI 可以使用的方法提供外观。

有一个单独的类StartUp,它有一个 main 方法,唯一要做的就是创建一个实例GuiApplication(所以基本上它会启动程序)。

在我的 GUI 中,有一个JTextPane用作记录器:某些操作和事件将显示在那里。使用来自我的 GUI 中其他地方的输出,我可以轻松地更新它的值。但是,当有来自我的域类中的输出时,例如ImageHandler,我无能为力。

当意外的图像 URL 通过我的阅读器时,有一个Try-Catch块可以防止我的程序崩溃,当它发生时,我想在文本窗格中显示它(“错误:无法读取文件 xxx”)。

但是,我没有看到一种将其传达给我的 GUI 的优雅方式:我无法创建实例,因为这会创建一个新的 GUI,而且我认为通过StartUp文件接近我的 GUI 也不是好习惯。

我正在考虑在一个可以在整个项目中访问的不同类中定义变量,但我首先想要一些意见。

4

2 回答 2

2

实际的方法是抛出一个 RuntimeException,它不需要更改方法的签名。在 GUI 中捕捉它并执行 JOptionPane.showMessageDialog。

另一种方法是使用事件处理程序扩展 ImageHandler 的 API,并安装一个调用 GuiApplication JOptionPane.showMessageDialog 的消息处理程序。

于 2012-12-16T22:24:13.850 回答
0

想到的一个选项是回调:将某个接口的实例(可以是匿名类)传递给执行工作的方法,当发生错误时它会调用该方法。

于 2012-12-16T22:39:13.197 回答