public class drawPanel extends javax.swing.JPanel implements ActionListener { ... }
機能
- ボールを描画するパネル
- Timerによるイベントを受け付ける(implements ActinListener)
NetBeans IDE が自動作成するメソッド
次のメソッドは,NetBeans IDE が自動的に作成する
- コンストラクタ drawPanel()
- initComponents()
必要なimport命令
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
作成する変数
double x, y; | ボールの座標(左上隅が原点) |
double Vx, Vy; | ボールの速度 |
int r; |
ボールの半径 |
作成するメソッド
init()
| ボールの位置や速度を初期値として設定する |
private void init() {
r = 32; // ballの半径
x = r; // ballの初期位置
y = r;
Vx = 4; // 初期速度
Vy = 0;
}
public void next() {
x += Vx; // ballを移動させる
y += Vy;
Vy += 0.125; // ballを加速する
// ballが壁に衝突したら初期状態に戻す
if((x+r >= getWidth()) || (y+r >= getHeight())) init();
}
actionPerformed(...)
| Timerイベントに対するアクション・リスナ |
public void actionPerformed(ActionEvent evt) {
next(); // 1フレームすすめて
repaint(); // 再描画
}
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, getWidth(), getHeight()); // パネル全体を白色で塗りつぶす
g.setColor(Color.BLUE);
g.fillOval((int)(x-r), (int)(y-r), 2*r, 2*r); // ballを青色で描く
}
コンストラクタの修正
このクラス・オブジェクトが生成されるときに,
ballの位置と速度もあわせて初期設定する.
public drawPanel() {
initComponents();
init();
}
上の赤字の行を追加する
drawPanelクラスのコンパイル
このクラスがコンポーネントとして利用できるように
コンパイルを済ませておく
メニューから: 「実行]→「ファイルをコンパイル」