• 締切済み

Javaプログラムの繋げ方について。

Javaプログラムの繋げ方について。 今まで(1)のようなプログラムを書いていました。 作りたいものに向けて色々検索するとやりたいものに近い(2)のようなサンプルプログラムを見つけました。 しかし、Java初心者なもので混ぜ方(?)がわかりません。 現在の私の知識からいうと今までのはアプレットでフレーム使うのはアプリケーションなのかな?別物なのかな?そんな感じです。 もし、混ぜることができるなら何かアドバイスをお願いします。 (1)package test; import java.applet.* ; import java.awt.Label ; import java.awt.Font ; import static java.awt.Font.BOLD ; import java.util.*; import java.awt.Graphics; import java.awt.Image; import java.awt.*; public class test extends Applet{ public void paint(Graphics g){ g.setColor(Color.red); g.fillOval(320, 200, 100, 100); } public void init () { ~~~~~~~~~~~~~~~~ } public void start () { ------------ }}} (2)import java.awt.*; import java.awt.event.*; public class MouseEvent7 extends Frame { int posX = 50; int posY = 50; public static void main(String [] args){ new MouseEvent7(); } //コンストラクタ MouseEvent7(){ this.addWindowListener(new WinAdapter()); //ウィンドウリスナーの登録 this.setSize(200,200); this.setVisible(true); //MouseMotionListenerの登録 addMouseMotionListener( new MouseMotionAdapter(){ public void mouseMoved(MouseEvent e){ posX = e.getX(); posY = e.getY(); repaint(); //paintメソッドを実行 } } ); } public void paint(Graphics g){ g.drawOval(posX,posY,50,50); } } (1)の内容に本当に(2)のプログラムで出来るマウスの動きに合わせて円も動く+クリックしたらそこで止まるだけいいのですが。 出来たら止まった点の座標も取りたいですが、そこまではいってません;;

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> そこからどうすれば止まった位置の近くに止まった座標を表示できるかわかりません。 クリックして止まったときだけpaintメソッドの中で g.drawString("("+posX+","+posY+")",posX,posY); のようにして描けばいいのでは? 描画位置は適当に調整してください。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

(1)(2)のプログラムを混ぜて、マウスの動きに合わせて円が移動するAppletを作るとこうなります。 import java.applet.* ; import java.awt.*; import java.awt.event.*; public class test extends Applet { int posX = 50; int posY = 50; public void paint(Graphics g) { g.setColor(Color.red); g.fillOval(posX, posY, 50, 50); } public void init () { this.setSize(200, 200); this.setVisible(true); addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { posX = e.getX(); posY = e.getY(); repaint(); } }); } } AppletにはaddWindowListener()がないので、(2)にあったその部分は無視。 マウスのクリックを取得するにはMouseAdapterクラスのmouseClicked()を実装して、addMouseListener()してください。

red_kun
質問者

補足

座標を取得する方法としてinit()の中に addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { posX = e.getX(); posY = e.getY(); } }); を入れればいいことがわかりました。 しかし、色々調べて試してみましたが、そこからどうすれば止まった位置の近くに止まった座標を表示できるかわかりません。

関連するQ&A