我有一个课程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中调用的消息处理程序。

09-10 06:42
查看更多