2011-05-26 26 views
-1

ユーザーは、頂点とエッジを追加してグラフを作成できるユーザーインターフェイスを作成する必要があります。私はすべての基本コーディングが完了しており、頂点を追加できるようにGUIにボタンを追加したいと考えています。私は別のクラスのキャンバスからグラフを描画します。今私の問題は、私はGUIクラスでグラフを作成する場合、それを描くためにキャンバスからどのように私はそれにアクセスするのですか?または、キャンバスクラスでグラフを作成する場合、グラフを更新するにはどうしたらいいですか? コードスニペットがわからない...異なるクラスのクラスのインスタンスにアクセスしますか?

+1

これ以上の情報を提供する必要があります。あなたはUIを作成するために何を使用していますか? – YXD

+1

[Model-View-Controller](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)を見てください。このパターンに従わなくても、モデルをプレゼンテーションから分離しておくことを考えさせます。 –

+0

UIのスイングとawtの使用 – Pseudos

答えて

1

あなたのキャンバスとボタンオブジェクトは、どうにか調整する必要があります。ボタンがキャンバスを知っているか、キャンバスがボタンを知っていなければならないか、またはそれらは第3のクラス(UIをまとめるもの)によって提供されるグラフオブジェクトを知る必要があります。

オブジェクトの1つにgetGraph()メソッドを追加して、必要なアクセスを許可することができます。

+0

ありがとう!グラフがメソッドの外に作成され、メソッドが追加されるように、キャンバスを少し変更しました。 UIクラスからのパラメタを受け入れます。グラフから項目を追加/削除します。ちょうどアイデアがあった、それが動作することを願って! – Pseudos

+0

それはWooorks!素晴らしい提案をありがとう – Pseudos

0

ノードとエッジに関する情報を格納する何らかの種類のデータ構造が必要です。描画するにはキャンバスにそれを読み込まなければならず、UIはその構造体から項目を挿入/更新/削除する必要があります。

これまでにこの構造を保存していた場合は、その構造やそれを変更するメソッドへの参照を提供する必要があります。

関連する問題