将图形对象传递给动作方法

时间:2012-09-12 12:24:26

标签: object graphics 3d paint actionmethod

我需要将绘图对象'g'从paint方法传递给action方法。 像这样:

 public boolean action(Event event, Object obj)
 {   

   Graphics g=getGraphics();
   repaint();

   if (event.target == choice) 
   String selection = choice.getSelectedItem();
   if (selection.equals("do something"))
   {
       doSomething(g);
       repaint();
   }
   else if (selection.equals("do something else"))
   {
       Somethingelse(g);
       repaint();
   }

   return(true);
}

      else
          return(false);
   }

我试图将g声明为全局图形变量,但它不起作用。还有另一种方法可以做到这一点。任何帮助表示赞赏..谢谢..

1 个答案:

答案 0 :(得分:0)

我认为这是java并且你正在覆盖Swing组件(因此getGraphics()实际上是可用的)。

尝试Graphics g = this.createGraphics(),这可能会有所帮助。此外,请务必从事件调度线程调用repaint()方法。如果此操作链接到UI,通常就是这种情况。可以肯定的是,将重绘包装在Runnable中并将其发送到EDT的末尾:

SwingUtilities.invokeLater(new Runnable() { 
    public void run() {
        repaint();
    }
}