みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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)のプログラムで出来るマウスの動きに合わせて円も動く+クリックしたらそこで止まるだけいいのですが。

出来たら止まった点の座標も取りたいですが、そこまではいってません;;

投稿日時 - 2010-08-27 16:36:04

QNo.6139609

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

> そこからどうすれば止まった位置の近くに止まった座標を表示できるかわかりません。

クリックして止まったときだけpaintメソッドの中で
g.drawString("("+posX+","+posY+")",posX,posY);
のようにして描けばいいのでは?
描画位置は適当に調整してください。

投稿日時 - 2010-08-31 20:34:51

ANo.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()してください。

投稿日時 - 2010-08-27 20:38:13

補足

座標を取得する方法としてinit()の中に

addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
posX = e.getX();
posY = e.getY();
}
});

を入れればいいことがわかりました。

しかし、色々調べて試してみましたが、そこからどうすれば止まった位置の近くに止まった座標を表示できるかわかりません。

投稿日時 - 2010-08-30 23:32:58

あなたにオススメの質問