座標の値を取得する

広告

Pointクラスのオブジェクトに保持されているx座標及びy座標をそれぞれ取得する方法を確認します。

Pointクラスには2つのフィールドが用意されており、Pointクラスのオブジェクトが保持しているx座標及びy座標はこのフィールドを参照することで取得する事が可能です。

フィールド説明
Point.xx座標
Point.yy座標

フィールドはそれぞれ次のように定義されています。

この Point の X 座標です。X 座標が設定されていない場合はデフォルトで 0 になります。
この Point の Y 座標です。Y 座標が設定されていない場合はデフォルトで 0になります。

このフィールドの値を参照することでPointクラスのオブジェクトが持っている2つの値をそれぞれint型の値として取得することが可能となります。

実際には次のように使用します。

Point point = new Point(10, 20);

int x = point.x;
int y = point.y;

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JPointTest3.java

import javax.swing.*;
import java.awt.Point;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;

public class JPointTest3 extends JFrame implements MouseListener{

  JLabel label;

  public static void main(String[] args){
    JPointTest3 frame = new JPointTest3();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JPointTest3(){
    JPanel panel = new JPanel();
    panel.addMouseListener(this);
    panel.setBackground(Color.BLUE);

    label = new JLabel("座標を表示");

    getContentPane().add(panel, BorderLayout.CENTER);
    getContentPane().add(label, BorderLayout.PAGE_END);
  }

  public void mouseClicked(MouseEvent e){
    Point point = e.getPoint();
    label.setText("x:" + point.x + ",y:" + point.y);
  }

  public void mouseEntered(MouseEvent e){}
  public void mouseExited(MouseEvent e){}
  public void mousePressed(MouseEvent e){}
  public void mouseReleased(MouseEvent e){}

}

上記をコンパイルした後で実行すると次のように表示されます。

JPointクラスのオブジェクトから座標を取得する

今回はパネルの上をマウスでクリックすると、クリックされた位置の座標を取得して画面下部のラベルに表示するようにしています。青い部分をクリックして下さい。

JPointクラスのオブジェクトから座標を取得する

JPointクラスのオブジェクトから座標を取得する

メソッドを使って取得する

フィールドを参照する以外にPointクラスで用意されている「getX」メソッドと「getY」メソッドで取得することが可能です。

getXメソッド:

この Point2D の X 座標を double 精度で返します。

戻り値:
  この Point2D の X 座標

getYメソッド:

この Point2D の Y 座標を double 精度で返します。

戻り値:
  この Point2D の Y 座標

それぞれのメソッドの戻り値としてPointクラスのオブジェクトが保持しているx座標及びy座標を取得することが出来ますが、取得できる値はint型ではなくdouble型の値として取得される点に注意して下さい。

実際には次のように使用します。

Point point = new Point(10, 20);

double x = point.getX();
double y = point.getY();

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)