如何在不创建实例的情况下访问类中的特定组件/方法

时间:2012-12-16 21:57:52

标签: java oop

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

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

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

有一个Try-Catch块阻止我的程序在意外的图像URL通过我的阅读器时崩溃,当它出现时我想在textpane中显示这个(“错误:文件xxx不能是读”)。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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