我有一个课程GuiApplication
和一个课程ImageHandler
。 GUI可以通过称为ImageHandler
的类与Crawler
(并因此与图像)一起使用,该类为GUI可以使用的方法提供了外观。
有一个名为StartUp
的单独的类,它具有一个主要方法,唯一要做的就是创建GuiApplication
的实例(因此基本上可以启动程序)。
在我的GUI中,有一个JTextPane
用作记录器:某些操作和事件将在其中显示。利用GUI中其他位置的输出,我可以轻松地更新其值。但是,当输出来自我的域类内时,例如ImageHandler
,我无能为力。
有一个Try-Catch
块,当意外的图像URL通过我的阅读器时,它防止我的程序崩溃;当我这样做时,我想在文本窗格中显示此错误(“错误:无法读取文件xxx”)。
但是,我看不到将其传达给我的GUI的优雅方法:我无法创建实例,因为那样会创建新的GUI,并且我认为通过StartUp
文件访问我的GUI也不是一种好习惯。
我当时正在考虑在整个项目中都可以访问的不同类中定义变量,但是我首先需要一些意见。
最佳答案
实际的方法是抛出RuntimeException,它不需要更改方法的签名。在GUI中捕获它并执行JOptionPane.showMessageDialog。
另一种方法是使用事件处理程序扩展ImageHandler的API,并安装在GuiApplication JOptionPane.showMessageDialog中调用的消息处理程序。