• 締切
  • すぐに回答を!

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

  • 質問No.6139609
  • 閲覧数128
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/2)

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

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

回答 (全2件)

  • 回答No.2

ベストアンサー率 69% (495/711)

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

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

ベストアンサー率 69% (495/711)

(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

お礼率 0% (0/2)

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

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

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

しかし、色々調べて試してみましたが、そこからどうすれば止まった位置の近くに止まった座標を表示できるかわかりません。
投稿日時:2010/08/30 23:32
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ