2016-05-03 5 views
0

JButton drawlineによって呼び出されるクラスがあります。以下のコードでは、Jpanelで描画することができます点を1点づつ作成し、各点をArrayListに格納することによって、私は、線を描画することができますmousePressedイベントを実装しましたJButtonを使用するときに、Java 7でmousePressedを停止する(線の描画を続行する)

私が持っている問題は、別のボタンをクリックしたときですsaveToFileボタンと呼ばれています行は、私はCSVファイル(ptID、x、y) JPanelでクリックすると、描かれた線はマウスのクリックごとに引き続き描画されます。

CSVファイルに行が書き込まれた後、SaveToFileボタンでpts arrayListをnullに設定しました。

JButtonのsaveToFileをクリックしたときに、mousePressedイベントでarrayListへのポイントの書き込みを停止する方法がわかりません。 I SaveToFileメソッドの後、私はArrayListの勝点を空にして再描画する必要があり、私がもし

  1. 私が思っていた良いアイデア

    されていない場合は無効にすることができることをどこかで読んでいた

    ラインので、私は再描画時に画面から削除されますか?

  2. 私は、これは些細であれば、私はsaveLineボタンを

謝罪をクリックすると、まだ を発生するのmousePressedを停止するために使用できる任意の他の方法。私はJavaとSwingを学んでいます。 PTSがされた後

クラスDrawLineは、ActionListenerの{ ます。public void actionPerformedの(のActionEventイベント) { 試し{

  addMouseListener(new MouseAdapter(){ 

       public void mousePressed(MouseEvent e){ 

       int yCoord = HEIGHT - e.getYCoord(); 
       int xCoord = e.getXCoord(); 

       String pointxy = "p" + x + "," + y; 
       Point p = new Point(pointxy); 
       pts.add(p);         
       repaint(); 

      } 


     }); 
     } 
     // catch stuff done here 

    } 

}

答えて

0

試しSaveToFileメソッドボタン方式で再インスタンス化あなたのArrayListのPTSを実装しますcsvに送信されます。

ArrayList<ArrayList<Point>> pts; 

とSaveToFileメソッドボタンが2DのArrayListに押されるたびに新しいのArrayListを追加:あなたはラインをキープしたい場合は、2DのArrayListを構築するに見てみたいことがあります。

+0

こんにちはlaramaCaraDara、残念ながら、SaveToFileボタンのArrayListをrepaint()の後で再現しませんでした。 JPanelをクリックすると、削除されたような行が再表示され、新しいマウスポインタがクリックされた行に新しいポイントが追加されます – daveb

+0

このArrayListの有効範囲は何ですか? – llamaCaraDara

+0

ArrayListはSaveToFileに対してローカルであり、次にグローバルarrayListに設定します – daveb

関連する問題