0

グラフィック オブジェクト 'g' をペイント メソッドからアクション メソッドに渡す必要があります。このようなもの:

 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 をグローバル グラフィックス変数として宣言しようとしましたが、うまくいきません。これを行う別の方法はありますか。どんな助けでも大歓迎です..ありがとう..

4

1 に答える 1

0

これはJavaであり、Swingコンポーネントをオーバーライドしていると思います(つまり、getGraphics()が実際に利用可能です)。

試してみてくださいGraphics g = this.createGraphics()、それが役立つかもしれません。repaint()また、必ずイベント ディスパッチ スレッドからメソッドを呼び出してください。このアクションが UI にリンクされている場合は、一般的にそうです。確かに、再描画を Runnable でラップし、EDT の最後に送信します。

SwingUtilities.invokeLater(new Runnable() { 
    public void run() {
        repaint();
    }
}
于 2012-11-20T07:21:38.860 に答える