- - PR -
JAVA、グラフィックスについて
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-10-19 00:31
確かにそうでした。paintするたびにいちいちファイルを読みに行くのは 時間がかかってしまいます。失礼しました。 さて、ともさんのご質問の件ですが、ファイルから座標を読みとって、たくさんの 円を描きたいという要望を満たすには、ともさんにとっていくつものハードルを 越えなければならないと思います。恐らく、他言語を経験していて、何かのきっかけ でJavaを始められたのではないでしょうか? 私も、Javaをやる前はC(++ではない)をやっていました。当時はJava=アプレットの 時代でした。mainから始めるのは良いとして、なぜわざわざnewをしなければならな いのか?なぜファイル名と同じクラス名をnewで呼び出すのか?mainの中で 円を描画することはできないのか?paintメソッドとは何か?命名規則で決まって いたとしても、Graphics gという変数はどこから代入されてくるのか?extendとは 何物か?インスタンス変数はグローバル変数とはどう違うのか?この辺のことを すべて書こうとすると本が一冊書けてしまうくらいです。 関数のリファレンスに似た、APIリファレンスというのがあります。 しかし、これは、読むのにコツがいりますし、まずこれを理解したからといって プログラミングをするのは不可能に近いものがあります。どうしたら理解 できるようになるかというと、できるだけ多くのサンプルコードを試してみる しかないんですね。 たくさんの円を描きたいという要望ですので、ランダムで座標を算出して ループで回してやればいいと思います。その前に、円を1個だけ描画する ところから始められてはいかがでしょうか?
drawOvalメソッドのパラメータは、左から順にX座標・Y座標・幅・高さです。 必ずintで指定します。幅と高さが同じ場合、正円になりますし、違う場合は 横長もしくは縦長の楕円になります。
ちなみに、色の指定は、drawOvalメソッドは持っておらず、setColorメソッドを 使用します。太さの指定は、ちょっと厄介で、BasicStrokeというクラスを使用 します。drawOvalのかわりにfillOvalにすると、円の内部を塗りつぶします。 (サンプルコードは省略します。検索をかければ出てくると思いますので) 座標をランダムではなくファイルから読みこみを行いたいという場合は、 BufferedReaderを使うと1行ずつ読みこむようになります。また、XとYを カンマで区切っておりますので、StringTokenizerを使えば良いと思います。 Stringからintへの変換はInteger.parseIntを使用します。これも 例外処理が必要となります。 [ メッセージ編集済み 編集者: ひら 編集日時 2006-10-19 00:34 ] コーディングミスを修正 [ メッセージ編集済み 編集者: ひら 編集日時 2006-10-19 09:29 ] | ||||||||||||
|
投稿日時: 2006-10-19 14:40
nagiseさん、ひらさん
アドバイス&ソースありがとうございます!!!! 今・・・苦戦中です;;; できなかったらまた教えてください(涙 | ||||||||||||
|
投稿日時: 2006-10-20 14:26
>nagiseさん
「データの読みこみ処理」というのが、先日聞いた 「java.io.FileReaderとjava.io.BufferedReader」を使ったものですよね?
Pointに、txtの数が入るんですか?? 1つずつ数を読む読み方がわからないのですが・・・。 サンプルなどのある良い本(サイト)を、教えていただければ幸いです。 | ||||||||||||
|
投稿日時: 2006-10-20 14:29
>ひらさん
Java言語もC言語も、ちょっと触った程度の学習しかしておらず、 いざ「Javaするぞ!」となっても、混乱してばかりです;;; Javaで学習したのはGraphicsメインで、あとはボタンやテキストBOXをやりました。 (円や多角形、扇形の描画は一応やりました) サンプル、いろいろ試してはいるのですが、なかなかちょうど良いものに出会えません。
StringTokenizerで調べたのですが、使い方がよくわかりませんでした(汗 「,」で区切ったtxtの数字を、ひとつずつfillOval(○,○,100,100);の中に入れられるのですか?? また、サンプルなどのある良いページがあれば教えてください。 | ||||||||||||
|
投稿日時: 2006-10-20 14:37
StringTokenizerの使い方 _________________ 己への戒め 「活動的な馬鹿より恐ろしいものはない」 by ゲーテ | ||||||||||||
|
投稿日時: 2006-10-20 14:43
>想馬さん
検索はしてみたんですよね…。 でもこの中から探してみます。ありがとうございます。 | ||||||||||||
|
投稿日時: 2006-10-20 14:52
区切り文字がカンマであるなら、
StringTokenizer( String str, String delim ) を使用しましょう。strには処理対象の文字列、delimには区切り文字。 あとはhasMoreTokensとnextTokenを調べましょう。 _________________ 己への戒め 「活動的な馬鹿より恐ろしいものはない」 by ゲーテ | ||||||||||||
|
投稿日時: 2006-10-20 15:02
APIの検索ならここ!
http://javadocs.org/ 英語だけどね |