1

我们正在用 Java 做一个图像处理项目。UI 提供了如下工具:矩形选择和魔棒工具。

现在,有一个类: ImageView

/*Other classes can set image, this class will draw the image*/
public class ImageView extends JPanel{

/*It resizes the image to fit the panel and draws the image on the panel.*/
public void setImage(BufferedImage image){/*code*/}

}

每个工具都被视为一个单独的类,扩展ImageView。例如: 矩形选择工具:

/*It has a function which allows the user to draw rectangle around the image, I am    not going to write the code here because it is long and unnecessary*/
public class ResizableRectangleView extends ImageView {

/*It returns the rectangle drawn by the user*/
public Rectangle getRectange(){return rectangle;}

}

另一个类UIController根据用户选择的工具创建“工具”。然后在 GUI 中显示 JPanel(工具或视图)(例如:ResizableRectangleView 或其他一些视图)。然后用户可以绘制矩形(在 ResizableRectangleView 的情况下)。

对于每个工具,都会有一个单独的类。每当用户选择工具时,都会创建一个新对象,向该工具提供图像,然后将工具(视图)添加到 UI。

我不喜欢这种方法。我的问题是,像 Gimp 和 Photoshop 这样的程序如何允许在同一个图像/图层上使用多个工具?我应该如何进行?

非常感谢带有组件的框图(显示数据和命令的流)。

4

0 回答 0