2017-05-30 19 views
0

計算を行い、私にリストを与えるボタンを作成する必要があります。そのリストをペイントで使用し、それらの座標の線を作成する必要があります。私はイベントリスナーから私のペイントメソッドにデータを送信するための最良の方法は何ですか?ありがとうございました!イベントリスナーからpaintComponentにデータを送信する方法

+2

あなたは多くのより多くの情報を提供してくださいできますか?これまでに何を試しましたか? 質問が良ければ良いほど、答えが良くなります。 – Gewure

答えて

0

あなたには十分な情報を与えてはいけません。たくさんのことを尋ねるので、ここではawt/swingボタンを使い始めるための概要を紹介します。残りの部分をルックアップしたり、カスタム塗装などを設定します。以下のコードのコメントを説明とともに参照してください。

座標を格納するために、公開されている配列またはリストを作成します。これは、私たちがイベントリスナーとあなたのpaintメソッドの間で情報を共有するために使用するものです:あなたは絵を行っている場合

myButton.addActionListener(new java.awt.event.ActionListener() 
{ 
    public void actionPerformed(java.awt.event.ActionEvent evt) 
    { 
     //do something to get your new co-ords/point 
     //  
     //your code here to get X and Y 

     //assign X and Y to a point: 
     Point myNewPoint = new Point(X, Y); 

     //add that point to the list 
     myCoOrdinateList.add(myNewPoint); 

     //repaint your graph or your custom paint component here (or whatever else you are drawing these lines to): 
     myComponent.repaint(); 
    } 
}); 

そして:

public static LinkedList<Point> myCoOrdinateList = new LinkedList<>(); 

は、あなたのボタンにこのような何かをされたアクションリスナーを追加します。コンポーネントのpaintメソッドをオーバーライドすることにより、あなたはあなたのpaintメソッドではこのような何かを追加することができます:ここで

//create graphics so we can draw lines 
Graphics2D g2d = (Graphics2D) g; 
//we need to work with 2 points so we will store one point here: 
Point previous = new Point(0, 0); 
for (Iterator<Point> iterator = myCoOrdinateList.iterator(); iterator.hasNext();) 
{ 
    //get point 
    Point nextPoint = iterator.next(); 
    //link previous point and next pint in the co-ordinates list: 
    g2d.drawLine(previous.x, previous.y, nextPoint.x, nextPoint.y); 
    //set new previous point so the next line is ready to be drawn 
    previous = nextPoint; 
} 

は公式のJavaチュートリアルからいくつかの詳細情報です。これ以上の質問をする前にこれらのリンクを読むことをお勧めします。

カスタムペイント:グラフィック/描画のものを使用した作業 https://docs.oracle.com/javase/tutorial/uiswing/painting/index.html

:スイングボタンを使用した作業の https://docs.oracle.com/javase/tutorial/2d/index.html

さらに詳しい情報: https://docs.oracle.com/javase/tutorial/uiswing/components/button.html

関連する問題