我需要将绘图对象'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声明为全局图形变量,但它不起作用。还有另一种方法可以做到这一点。任何帮助表示赞赏..谢谢..
答案 0 :(得分:0)
我认为这是java并且你正在覆盖Swing组件(因此getGraphics()实际上是可用的)。
尝试Graphics g = this.createGraphics()
,这可能会有所帮助。此外,请务必从事件调度线程调用repaint()
方法。如果此操作链接到UI,通常就是这种情况。可以肯定的是,将重绘包装在Runnable中并将其发送到EDT的末尾:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
repaint();
}
}