電子書籍の厳選無料作品が豊富!

javaのswingで、自由に線を引くにはどうすればいいのですか?

import javax.swing.*;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.*;
import java.util.Vector;

class hoge{
JPanel p

public hoge{
p = new JPanel();
p.setLayout(null);
getContentPane().add(p);
}

public static void main(String args[]){
hoge tr = new hoge();
}
}

みたいな(細かいところは省略)したプログラムを実行したときに
任意の座標から座標へ線を引くにはどうすれいいのですか?
appletviewerのdrawStringのようなメソッドはないのですか?

A 回答 (5件)

una_hogeさん、こんにちは。



「ボタンを押すと線が引かれるようにしたい」ということですが、
他の回答者の方がおっしゃるように、あとは線を引くだけです。

ですが、未だ答えが得られていない、とのこと。
何が判らないの?とこちらは首をかしげるほか無いのですが、これはおそらく、una_hogeさんの求めるものと、私たちが想定しているものの間にまだ隔たりがあるからなのではないかと思います。

もう少し詳しく情報をいただけたら、こちらも的確な解答ができると思います。

線を引くこと自体が判らないのか、ボタンが押された事をキャッチするやり方が判らないのか。

試行してみたプログラムはどんな動作をして、それは自分の求めるものとどう違うのか。

これをきっちり書いて教えて下さい。
そうでないと私たちも答えるのに大変苦労します。


また、今回のご質問はすでに他の方からの閲覧はあまり見込まれません。
理由は、すでにいくらかの回答がされていること、時間がたっていること、質問のタイトルが内容を表していないため最初から無視されているであろうということ、等があります。

ご自分で試行錯誤をされた後、質問内容を絞り込み、明確に伝わる質問内容で再度こちらに質問をして下さい。
    • good
    • 0

なにがどううまくいかないのでしょうか?


ソースをコピーしましたが、コンパイルが通りませんよ。
せめてコンパイルエラーが出ないものを載せましょう。
(それともコンパイルエラーが出るという質問でしょうか?)

ただサンプルをコピーして貼り付けることは
応用(原理や知識を実際の事柄に当てはめて用いること。)
とはいいませんよ。

それから、まだ質問者様にはこの手の内容は早すぎると思います。
(継承とかも理解していなさそうですし。)
まずはしっかりJavaの基本を理解してから、
次に
・単に線を描画する
・ボタンを押したときに何か簡単な処理をする
という別々のものを作り、中身を理解してから
応用(原理や知識を実際の事柄に当てはめて用いること。)
してみてはいかがでしょうか。

それとも単に「答え書け」というのであれば、他の回答者の回答を待って下さい。

この回答への補足

ちょっとまってください!!!ききずてなりません!!!
僕はjavaは得意です。東京大学で情報工学を専攻しています。!!
司法書士、公認会計士、行政書士、国家公務員試験も受かりました。
それが、Javaの基本を理解していないとかかれるのは心外です!!!
そうですね。コンパイルとおりませんね。じゃあちょっとやってみます!!
また聞きます。

補足日時:2006/11/09 09:17
    • good
    • 0

No.2のリンク先の例2は


マウスでクリックしたらその場所を中心に円を書く
です。
マウスでクリックしたら

ボタンを押したら
に読み替えて、
その場所を中心に円を書く

画面の(10,10)から(200,400)まで線を引く
に読み替えれば良いのですよ。

マウスをクリックした時の処理の中身を
ボタンを押した時の処理に書いて、
円を書く部分を線を引くに書き換える。

サンプルはあるのですから、あとは応用ですよ。

この回答への補足

応用して簡単なものをこう作ってみましたが、うまくいきませんでした

class hoge{
  JPanel p
  Jbutton btn
  public void paintComponent(Graphics g) {
super.paintComponents(g);
g.drawOval(10,10,300,300);
  }
  public hoge{
   btn = new JButton("click");
   p = new JPanel();
   setBounds( 10, 10, 1100, 1100);
   p.add(btn);
   p.setLayout(null);
   btn.addActionListener(new ActionListener()
   {
     public void actionPerformed(ActionEvent event){
       repaint();
     }
   });
getContentPane().add(p);
}

   public static void main(String args[]){
     hoge tr = new hoge();
test.setVisible(true);
   }
}

補足日時:2006/11/08 21:19
    • good
    • 0

マウスでドラッグして線を引こうが、


ボタン押下のアクションで機械的に線を引こうが、
「線を描画する」
ということは同じですよ。

それに先ほどのリンクの他のページは見ましたか?
例えばここ→http://web.hc.keio.ac.jp/~fujimura/lang/page-16- …
あとは「ボタン押下のアクションで↑を実行する。」だけですね。

この回答への補足

何が一緒なのかがわかりません。
設置したボタンをクリックすると図形が描かれるようにしたいのです。
いまいちどうやってプログラムをつくればいいのかわかりません。

補足日時:2006/11/08 18:40
    • good
    • 0
この回答へのお礼

マウスクリックじゃなくてボタンクリックで図形を描けるようにしたいです。

お礼日時:2006/11/08 18:50

参考になれば。



参考URL:http://web.hc.keio.ac.jp/~fujimura/lang/page-16- …

この回答への補足

ちょっと質問の意図をちゃんと伝えていなかったので、正確に伝えます。やりたいのは、ボタンを配置してボタンをクリックしたときに画面に線が引かれるようにしたい

import javax.swing.*;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.*;
import java.util.Vector;

class hoge{
JPanel p
Jbutton btn

public hoge{
btn = new JButton("click");
p = new JPanel();
setBounds( 10, 10, 1100, 1100);
p.add(btn);
p.setLayout(null);

btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event){
     *****
}
});

getContentPane().add(p);
}

public static void main(String args[]){
hoge tr = new hoge();
}
}

でbtnのボタンがクリックされたら画面の(10,10)から(200,400)まで線が引かれるようにしたいです。
***の部分をどう作ればいいのかわかりません。教えてください

補足日時:2006/11/08 18:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!