2011-07-22 42 views
1

例如,我有扩展JPanel的类A,并且我想将它的Graphics2D传递给类B.如果我在类B的Graphics2D实例上执行操作,它会在类A上绘制吗?如果您将另一个对象传递给当前对象的Graphics2D,它会绘制当前对象吗?

public void paintComponent(Graphics g){ 
    super.paintComponent(g); 
    Graphics2D g2d = (Graphics2D)g; 
    ... 
    b.doSomePainting(g2d); 
    ... 
    } 
+0

在这里失踪reall问题1)你想克隆自定义绘画从B - > A,2)你想通过绘画从B - > A,3)另一个东西, – mKorbel

+0

我有我的面板(A)和我想分割A的功能,以便B完成所有的动画,但仍然绘制到A上。如果这有意义? – rtheunissen

+0

http://sites.google.com/site/drjohnbmatthews/kineticmodel/code by @trashgod,有很多模型 - >控制器 - >视图(MVC)的例子,但这是最好的,因为我在几个上个月 – mKorbel

回答

3

。什么会让你以其他方式思考?您所做的只是将类AGraphics2D对象的绘画委托给B类。就这么简单。

+0

我99%确定,我猜测它会很容易测试。我只是想检查一下,否则可能有一些特别的规则。谢谢。 – rtheunissen

+0

需要注意的一件重要事情是,当你创建'Graphics2D'对象时,你应该做以下事情 - 'Graphics2D g2d =(Graphics2D)g.create()'。这将有效地创建'Graphics'对象的副本。 – Moonbeam

+0

为什么这比仅仅投射它更好? – rtheunissen

相关问题