- ベストアンサー
ペイントソフトを作っているのですが・・・
簡単な絵を書くプログラムを下のようにつくりました。 こんなようなソースが公開されているサイトをご存知のかたは教えていただけないでしょうか?? おねがいします!! import java.awt.*; import java.awt.event.*; public class mouse5 extends Frame implements MouseListener , MouseMotionListener{ //グローバル変数 int x0,y0; Color objectColor = Color.red; //コンストラクタ public mouse5(){ setSize(400,300); //マウスイベント addMouseListener(this); addMouseMotionListener(this); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } //paint public void paint(Graphics g){ } //マウスが押されたら public void mousePressed(MouseEvent e){ //始点の座標 x0 = e.getX(); y0 = e.getY(); } //マウスが放されたら public void mouseReleased(MouseEvent e){ } //マウスがクリックされたら public void mouseClicked(MouseEvent e){ } //マウスが画面に入ったら public void mouseEntered(MouseEvent e){ } //マウスが画面から出たら public void mouseExited(MouseEvent e){ } //マウスがドラックされたら public void mouseDragged(MouseEvent e){ //線を引く Graphics g = getGraphics(); g.drawLine(x0,y0,e.getX(),e.getY()); g.dispose(); //次のために始点を更新 x0 = e.getX(); y0 = e.getY(); } //マウスが動いたら public void mouseMoved(MouseEvent e){ } //main public static void main(String[] args) { Frame w = new mouse5(); w.show(); } }
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Graphics#setColor(Color color) でこれから描く線の色を変更できます。 Colorオブジェクトをインスタンス変数として保持しておき、ボタンをクリックされたときにこの変数の内容を変えれば、線の色を変更できます。 なお、この変数をコンストラクタなどで初期化しておくことを忘れずに。
その他の回答 (4)
- Bonjin
- ベストアンサー率43% (418/971)
Frameに直接描画するのではなく、Canvas使った方がいいですよ。
- ngsvx
- ベストアンサー率49% (157/315)
>ボタンを押したら赤になるプログラム 意味が2通りに受け取れます。 1.これから描く線の色を変える 2.既に描いてある線の色を変える どちらでしょうか? 2の場合は、対象とする線を選択する処理もしなくてはならないので、結構難しくなります。
- PecoPlus
- ベストアンサー率76% (144/188)
こんばんは、#1です。 色を変えることを考える前にアプリケーションを何とか形にしないといけないと思います。 bluewing1999さんのプログラムがシンプルに見えるのは、まだ、未完成だからです。 プログラムを起動してみてください。 いっけん線を描くことができて、形になっているように見えますが、ウインドウを最小化したり、他のウインドウを重ね合わせてしてみてください。 せっかく描いた線が消えてしまうはずです。 これでは、シンプルなものとはいえペイントソフトとしては、不十分です。 もう一度、#1で示したページを読み直してみてください。 ヒントがあるはずです。
- PecoPlus
- ベストアンサー率76% (144/188)
こんにちは。 アプレットですが、以前、似た質問に答えたことがあります。 参考になるとよいのですが。
補足
たしかに似ていますね!ありがとうございます。 でも、ちょっと私のより難しいですね。。 私のソースだと黒い線が書けるようになっているのですが これをボタンを押したら赤になるプログラムを作りたいと思っているのですがそれはどうやればよろいしいのでしょうか??
補足
1番です!