0

私は Eclipse で作業してBufferedImageいますが、フレームにペイント/描画されているかどうかを確認する if ステートメントを作成できるかどうかを知りたいです。何らかの理由で、クリック可能な領域が想定されていないときにその画像に表示されるため、正しい画像が描画されません。

たとえば、領域をクリックして 4 から 5 に変更すると、すべて問題ありません。5 から 4 に移動するためにクリックすると、4 からの「領域」が 5 に表示されるため (画像は、クリック可能な領域が表示される前に常に描画される必要があります)、描画される前に 6 になります。これを制限して、最初に画像がフレームにペイントされているかどうかを確認したいと思います。

私は本当に今持っているもの以外は何も使いたくないので (このタスクを実行するために実装された新しいクラスはありません)、これを解決するためのシンプルで効果的な方法が本当に欲しいだけです。これが私が話していることです:

...
MouseAdapter mouseHandler = new MouseAdapter()
      {
          public void mouseClicked(MouseEvent e)
          {
            repaint();
             if(n==0)
            {
              if(e.getX()>=459 && e.getX()<491 && e.getY()>=111 && e.getY()<133
                 {
                     n = 4;
                 }
                 return;
            }
            if(n==5)
            {
                if(...)
                {
                    n = 4;
                }
                    return();
            }
            if(n==6)
            {
               if(...)
                {
                    n = 5;
                }

               if(...)
                {
                    n = 0;
                }

               if(...)
                {
                    n = 6;
                }
                    return();
        }
  }
  ...
4

2 に答える 2

0

さて、解決策を見つけました。この質問に戻ってお知らせするのを忘れていました。問題は、何らかの理由でマウスがダブルクリックされていたことです。「再帰的」であるとほぼ言えます。私は、mouseListener を paintComponent の内側から外側に移動することにしました。

于 2013-04-16T22:09:06.763 に答える