- PR -

全く訳が解りません。

1
投稿者投稿内容
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-01-11 16:50
http://43.233.98.50:81/cobra/public_html/ieri/images/easy_draw3.java

上のソース、確かに クラス DrawArea でインターフェース MouseListener, MouseMotion
Lister は有効なので同じクラス DrawArea で継承してある Canvas 上でマウスを押して
離せば、直線は描画される。が、しかし クラス easy_draw3 から クラス ControlPanel1,
ControlPanel2 を呼び出して ボタンとチョイスアイテムの値が変わる度に、その変わった
値を DrawArea の描画ルーチンに渡してやりたい。しかし、easy_draw3 本体で
インターフェース ActionListener, ItemListener を implements しているにも関わらず、
どうも、そのイベントが受け取れていない模様。 itemStateChanged() 並びに
actionPerformed() でイベントが受け取れないので、線種も背景もペン色も変わらず、
かろうじて ControlPanel1() コンストラクタで代入した初期値 dtype = 0; (直線) だけが
描画されている。

なぜ、 easy_draw3 の ActionListener と ItemListener がうまく機能しないのが、
そこをお聞かせ願えませんか?
nil
会議室デビュー日: 2003/06/17
投稿数: 14
投稿日時: 2004-01-11 23:26
itemStateChanged(), actionPerformed() 双方ともに正しく呼び出されていますよ:-P
ただ、そこでセットした値を読み出せていないだけです。

オリジナルのソース(easy_draw.java)とよく見比べてはどうでしょうか。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-01-12 02:21
いや、どうもありがとうございます。> nil殿
もう一度、よく見直したところ、なんとか

http://43.233.98.50:81/cobra/public_html/ieri/images/easy_draw5.java

ここまで漕ぎ着ける事ができました。
ただ、まだちょっと動作がオカシイです。
まぁ、他の言語も同じですが、これはもう根気勝負ですわ。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-01-13 01:47
unibon と申します。

ソースコードの掲載を、掲示板の本文中にではなく、
Web サーバ上に置かれて、掲示板の本文中ではそれへのリンクだけを張られており、
それはおそらくコードが長いためそうされているのだろうと思いますが、
将来もずっとリンク先のコードは残される予定なのでしょうか。
将来、過去記事になったときにリンクが切れていると、
回答されたかたの投稿も意味が分からなくなり、かなりの部分がムダになってしまうので、
できればリンクが切れることがないようにしていただけるか、
あるいは、本文中にコードを書かれたほうがよろしいのではないかと思います。

もちろん、掲示板にあまりにも長いコードを書くことは難しかったり、
あるいは、リンク先を未来永劫に渡って保守することはできませんし、
掲示板の使い方はいろいろなやりかたがあり、
Web サーバ上にコードを置くのもそのひとつとしてあるとは思いますが、
回答されたかたの投稿が将来もムダにならないように
できるだけご配慮していただけるとありがたいです。
未記入
大ベテラン
会議室デビュー日: 2003/11/24
投稿数: 121
投稿日時: 2004-01-13 08:57
必要な部分のソースコードだけを抜粋するのが一番いいのでしょうけど、
それもなかなか難しいですからね。(問題部分の抜粋ができるのであれば
自ら解決できてしまうことも多いので)

過程は他サイトへの参照ありでも、問題解決後には トラブルの概要・
解決方法・該当ソースコードの抜粋など質問者が再度サマリを
出してくれるといいかもしれないですね。
kito
ベテラン
会議室デビュー日: 2003/03/24
投稿数: 59
お住まい・勤務地: Osaka
投稿日時: 2004-01-13 12:11
引用:

未記入さんの書き込み (2004-01-13 08:57) より:
必要な部分のソースコードだけを抜粋するのが一番いいのでしょうけど、
それもなかなか難しいですからね。(問題部分の抜粋ができるのであれば
自ら解決できてしまうことも多いので)



元記事は要するに「デバッグしてくれ」ってことですよね。

質問者さんにとっても「自ら解決」できてしまうことが一番良いはずなので、
コードを削って実行してみるなり問題部分を抽出する努力をして、デバッグの能力を高めましょう。
そうでないと何時までたってもデバッグを人に頼ることになってしまいます。

問題部分を特定して、なお疑問であればこういう掲示板で質問するのはありだと思います。

もうひとつ、件名はもっと記事内容を表すものにしたほうがわかり良いと思います>コブラさん
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-11-09 22:14
なんか、たまにこの、中途半端なコード(easy_draw3.java)にアクセスしておられる方が
おるもんで・・・しかし、これは repaint() する度に前の描画が消えてしまいます (プ
一応、自分で納得できた(まだ課題はありますが)ソースの最終版が

http://202.226.153.50/cobra/public_html/ieri/images/ngis7.java

こちらにございますので、こちらの方が「まだ」参考になるかと。

実行結果: http://202.226.153.50/cobra/public_html/ieri/images/ngis7.html

[ メッセージ編集済み 編集者: コブラ 編集日時 2004-11-11 12:38 ]
1

スキルアップ/キャリアアップ(JOB@IT)