• ベストアンサー

javaアプレットで太字を描く方法。

アプレットを勉強している初心者です。 アプレットで直線を描画するにはdrawLineで描画すると思うのですが、それと同じような感じでそれより太字で描画する方法(メソッドなどが、もしあればそれでも)があれば教えていただきたいです。 よろしくお願いします。

  • rapun
  • お礼率65% (196/300)
  • Java
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.2

線分の太さを太くして描画したい、ということでしょうか。 そうした場合は、GraphicsではなくGraphics2Dのメソッドを利用するのがいいでしょう。通常、描画の際にはGraphicsインスタンスのメソッドを呼び出していると思います。が、例えばpublic void paint(Graphics g)←この引数で渡されるGraphicsは、本当はGraphics2Dというクラスのインスタンスです。これはGraphicsを更に拡張したものです。したがって、 public void paint(Graphics g){ Grapihcs2D g2 = (Graphics2D)g; こんな感じでGraphics2Dインスタンスとして扱えるようになります。 これを利用し、Strokeというクラスのインスタンスを作成して線分の太さを設定し、それからShapeというクラスを使って描く図形を用意し、描画を行うことで、太い線を描けるようになります。 Graphics2Dの基本的な使い方がわからないと、詳しい説明はちょっと大変になるんですが・・・そのあたりについて少し勉強してみるといいでしょう。

参考URL:
http://codezine.jp/a/article/aid/1021.aspx
rapun
質問者

お礼

詳しい回答ありがとうございます。 なるほど、、深いですね。全然聞いたこともありませんでした。 参考URLも読ませていただいて、勉強してみようと思います。

その他の回答 (3)

回答No.4

BasicStrokeで可能です。 Graphics2D g2 = (Graphics2D)g; //太さを指定 g2.setStroke(new BasicStroke(5)); g2.drawLine(10, 10, 200, 10);

rapun
質問者

お礼

ありがとうございます。 そのまま使えそうなコードまで書いていただきとても嬉しいです。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

私は単純に1ドットずらした線分を描く事で太くしたりしていますが・・・

rapun
質問者

お礼

あ、なるほど(笑) その方法は思いつきませんでした。色々やり方はあるのですね。

回答No.1

fillRectメソッド。 四角く塗りつぶすメソッドですが、 細長い四角にすれば「線」に見えると思います。

rapun
質問者

お礼

回答ありがとうございます。 なるほど。そういう方法がありますね。。 試してみようと思います。

関連するQ&A

  • アプレットで文字列の描画を横を半分に縮小して描画したい。

    java初心者です。 アプレットで文字列を描画するときにdrawStringメソッドで描画すると思うのですが、それでデフォルトで描画する時の横の長さを半分にして描画したいのですが(見た目的には縦長にする感じです)、何か方法はあるでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • javaアプレット

    javaアプレットの勉強をしているのですが、教えてください。 マウスを押すと位置を取得して、線を描くアプレットをつくってみたいと思っています。 一回目に押した位置を始点として、二回目の位置まで線を引きます。このとき、二回目にマウスを押したときにはじめて線を描画するとします。その後、三回目、四回目とマウスを押していくと、前に押した位置を始点として線を引くようなアプレットです。 そこで以下のようにコードを書いて実行してみました。(部分) public void mousePressed(MouseEvent e) { n=n+1; if(n==1){ x1=e.getX(); y1=e.getY();} else{ x2=e.getX(); y2=e.getY(); repaint(); x1=x2; y1=y2; } } public void paint(Graphics g) { g.drawLine(x1,y1,x2,y2); } ところが、実行してみると、マウスを押す位置に点が移動するだけでした。おそらく、コード中のx1=x2;y1=y2;がrepaint();より前に実行されてしまうのではないかと思います。どう書き直せばいいのでしょうか?また、どうしてrepaint();より前に実行されてしまうのでしょうか?

    • ベストアンサー
    • Java
  • 勝手にアプレットが停止します

    アプレットが動作不良となる時があます。 アプレットの定周期(1秒、2秒など)の 更新描画にて、repaint()メソッドを呼び出していますが、 Javaからupdate()メソッドが呼び出されず、画面の 描画処理が行われていない状態となっていようです。 調べたところ、アプレットのrepaint()メソッド を呼び出すと、Javaからupdate()メソッドが 実行され、paint()メソッドに記述している 各描画処理が行われるはずですが、下記のように 実行されていないようです。 非常に困っていますので、どなたかご教授お願いします。    repaint()     ↓    update()  ←なぜかJavaから実行要求が来ない     ↓    paint()

    • ベストアンサー
    • Java
  • Javaアプレットで描画の中断がしたい

    Java初心者です。学校の課題で数学シュミレーションの結果を Javaアプレットで表示するプログラムを作成しています。 この課題のJavaアプレットでは 複素平面のシュミレーション(計算結果を色のグラデーションで表示する)なのですが、 チョイスやボタン、マウスクリックなどによって、 初期条件や、描画方式、表示範囲などを指定することができます。 とりあえず、シュミレーション結果の描画は 試行錯誤の結果表示ができるようになりました。 paint(Graphics g)メソッドで数値計算、及び描画をしています。 (ちなみに余談かもしれませんがダブルバッファリングをしていて、 描画内容をImageとして書き込んでおいて描画するというかたちです。) 「計算途中(計算には結構時間がかかる)に 新たにボタンなどで指定条件が変更された場合、 現在の描画を中断して次の計算と描画を開始できるように プログラムを改良しなさい」というのが今回の課題です。 つまり、「プログラム的にはpaintメソッドが実行されている途中に 特定のイベントが発生したらpaintメソッドを中断し、 もういちど呼びなおしなさい」ということかと思われます。 スレッドを作り、そのスレッドを中断するなども考えました。 インターネットで検索もしてみましたが、 なかなか情報を見つけられず困っています。 学生が作るプログラムなのでそんなに難しいことではないのだと思うのですが 解決できませんでした。 どうぞよろしくお願いします。

  • javaでアプレットの描画が出来ない

    ものすごく初心者な質問で申し訳ありません。 jdk-1.6.0をVine linux 3.2にインストールして使用しています。 javaのソースを書いてコンパイルするなどには問題は無いのですが (今のところ) 以下のようなアプレットを試してみたところアプレットの窓は起動しますが 描画がされません。 import java.applet.Applet; import java.awt.Graphics; /* <applet code="test" width=200 height=200> </applet> */ public class test extends Applet { public void paint(Graphics g) { g.drawLine(10,10,180,110); } } 以上のコードを %javac test.java %appletviewer test.java としました。窓は起動し、アプレットが開始された、と表示されるのですが 線が見当たりません。 (ちなみに教科書にあるサンプルなので間違いがあったとしたら写し間違いです) 線が表示されるはずなんですが、表示されないのです。 まども起動するので何かJAVAを使う環境として何か細かい設定を間違って いるのかと思い質問しました。 分かる方がいらっしゃったら教えてください。

  • Javaアプレットでナンバープレースを作ってみたい。

    Java初心者です。 Javaの勉強としてアプレットでナンバープレースを作ってみようと思いました。 そこでもし「こんな感じに作ればいいんじゃない?」のようなアドバイスがいただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaアプレットを覚えるのに良書があったら教えてください

    Javaを勉強し始めてまだ3ヶ月の初心者です。 ちなみにプログラミングはJavaが初めてです。 基本的なことは「やさしいJava(高橋麻奈)」で理解したのですが、アプレットのことがほとんど載っていませんでした。どうか良い参考書があったら教えて下さい。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 描画した線や画像などを消す方法。

    アプレットを勉強している初心者です。 イベントであるボタンを押すと、ある数字が描画される、というものを作ったのですがそれを消す方法で悩んでいます。白い正方形で塗りつぶすのかな、と思ったのですが、手元の入門書のコードだとpaintメソッドの中で if(flag != 0){g.drawImage(myImg,0,0,this); と書くだけでそれを実装できているみたいなんです。「画像が出るボタン」を押すとフラグを1にしてrepaint()メソッドでpaintメソッドを呼び出して(?repaintメソッドの説明があまりなくてrepaintメソッドの効果がいまいちよく分かりません)画像を描画して、「消すボタン」を押すとフラグを0にしてrepaint()メソッドを実行してpaintメソッドを呼び出して(?)フラグが0なので結果何もしない。という流れです。 私の感覚だと消すボタンを押してもpaintメソッド内で何もしないなら画像が出たまんまなんじゃないか?と思っているのですが、ちゃんと画像は消えます。 (本当はコードを全部載せられれば一番いいのでしょうが、本に掲載されているコードなのでムリだと思うので載せません) どういうことが起こっているのでしょうか?また一度描画されたものを消す方法はどういう方法があるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • GraphicsクラスとAPIの関係???

    プリンタに線を描くのに (1)APIのLineTo関数 (2)GraphicsのDrawLineメソッド の何れかを使用しております これに関連して常々疑問に思っていることは、LineTo関数とDrawLineメソッドの関係です 描画初心者の駆出しである私としては『DrawLineメソッドは結局の所、APIのLineTo関数を呼出して線を描いている』と思っておりますが間違えでしょうか? 質問を更に簡潔に表現するならばGraphicsクラスは公開されているAPI描画関数を組合わせて使用することにより出来上がっているか? との質問です それともGraphicsクラスは一般のAPIを使用せず独自の機能で描画しているのでしょうか? ご存知したら教えてください、また関連資料等がありましたらお願い致します

    • ベストアンサー
    • CGI
  • アプレットでチェックボックスがチカチカする。

    java初心者です。 アプレットでチェックボックスを描画したらチカチカしてしまいます。他のGUI部品(というんでしょうか?ボタンとか)の場合はそういうことはないんですが・・・。 チカチカを直したいです。 よろしくお願いします。

専門家に質問してみよう