マウスでクリックした点を中心に円を描く。
より気楽にROIを描くために、今回のコードを書いてみた。
import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.event.MouseInputAdapter; public class PointCircle extends JFrame { JPanel pane; int r = 10;//円の半径の初期値 int x0; int y0; //お絵かき用のフレーム PointCircle () { pane = new JPanel (); pane.addMouseListener (new MouseCheck()); pane.addMouseMotionListener(new MouseCheck()); getContentPane().add(pane); } //お絵かきツール class MouseCheck extends MouseInputAdapter { public void mousePressed (MouseEvent e) { Graphics g = pane.getGraphics(); r += 3; //円の半径を"3"ずつ増やす x0 = e.getX(); y0 = e.getY(); g.setColor(new Color(r, 3*r, 2 * r)); g.drawOval(x0 - r, y0 - r, 2 * r, 2* r); } } public static void main(String[] args) { PointCircle frame = new PointCircle (); frame.setTitle("Test"); frame.setBounds(100, 100, 300, 300); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
このコードでは、クリックごとに円の半径が"3"ずつ増え、少しずつ色が変化するようにした。
マウスでクリックした点を中心に円を描くコードは、下記の部分。
g.drawOval(x0 - r, y0 - r, 2 * r, 2* r);