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



我需要将grapics对象'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声明为全局图形变量,但它不起作用。还有别的办法吗。任何帮助都将不胜感激。。谢谢

我假设这是java,并且您正在重写Swing组件(所以getGraphics()实际上是可用的)。

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

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

相关内容

  • 没有找到相关文章

最新更新