解答は
- ホスト名: earth.mlab.im.dendai.ac.jp
- ディレクトリ: /home/submit/JavaBeginners/[今日の日付]/[学籍番号]
に提出しなさい。ソースファイル (〜.java) のみを提出。 提出は gFTP 等の ftp ソフトを用いて行うこと。
マウスで指定した場所に長方形を描くことができる簡単なドローツールを作成しなさい。
マウスを使い、 ウィンドウ内で長方形の左上と右下の位置を指定すると 長方形が表示されるようにすること。 マウスで2か所の位置を指定するやり方は各自決めて良い。 例えば、マウスのボタンを押した場所と離した場所で指定する方法が 比較的プログラムが簡単で良い。 1回目のクリックと2回目のクリックで2つの点を指定する方法も考えられる。
mainメソッドを用意するクラス名は SimpleDrawTool とする。 (提出ファイル名: SimpleDrawTool.java)
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class SimpleDrawTool {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("Simple Draw Tool");
frame.setSize(640, 480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel panel = new MyPanel();
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
class MyPanel extends JPanel implements MouseListener {
(表示する長方形に関する情報を保持する変数を宣言)
public MyPanel() {
setBackground(Color.white);
addMouseListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.black);
g.drawRect(.... ) <-- 長方形を描画
}
public void mouseClicked(MouseEvent e) {
System.out.println("マウスがクリックされました");
}
public void mouseEntered(MouseEvent e) {
System.out.println("マウスがパネル内に入りました");
}
public void mouseExited(MouseEvent e) {
System.out.println("マウスがパネル内から出ました");
}
public void mousePressed(MouseEvent e) {
System.out.println("マウスのボタンが押されました");
(長方形の左上の点を記録)
}
public void mouseReleased(MouseEvent e) {
System.out.println("マウスのボタンが離されました");
(長方形の右下の点を記録)
repaint(); <--- 新しい座標で長方形を描くため画面を書き換える
}
}