座標の値を取得する
Pointクラスのオブジェクトに保持されているx座標及びy座標をそれぞれ取得する方法を確認します。
Pointクラスには2つのフィールドが用意されており、Pointクラスのオブジェクトが保持しているx座標及びy座標はこのフィールドを参照することで取得する事が可能です。
| フィールド | 説明 |
|---|---|
| Point.x | x座標 |
| Point.y | y座標 |
フィールドはそれぞれ次のように定義されています。
x public int x
この Point の X 座標です。X 座標が設定されていない場合はデフォルトで 0 になります。
y public int y
この Point の Y 座標です。Y 座標が設定されていない場合はデフォルトで 0になります。
このフィールドの値を参照することでPointクラスのオブジェクトが持っている2つの値をそれぞれint型の値として取得することが可能となります。
実際には次のように使用します。
Point point = new Point(10, 20); int x = point.x; int y = point.y;
サンプルプログラム
では簡単なサンプルを作成して試してみます。
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){}
}
上記をコンパイルした後で実行すると次のように表示されます。
今回はパネルの上をマウスでクリックすると、クリックされた位置の座標を取得して画面下部のラベルに表示するようにしています。青い部分をクリックして下さい。
メソッドを使って取得する
フィールドを参照する以外にPointクラスで用意されている「getX」メソッドと「getY」メソッドで取得することが可能です。
getXメソッド:
getX public double getX()
この Point2D の X 座標を double 精度で返します。 戻り値: この Point2D の X 座標
getYメソッド:
getY public double 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 )
JavaDrive