私がやろうとしているのは、swing コーディングの練習です。最初から長方形を作成し、フレーム上の x と y の位置を指定しました。私がやろうとしているのは、キー リスナーを使用して x 変数を更新し、左右に移動することです。
ここでは、アクション リスナーを実装するクラスを作成しました。
public class Board extends JPanel implements ActionListener {
「x」変数と「y」変数を追加しました。
int x, y;
int dx;
int HEIGHT, WIDTH;
private final int DELAY = 50;
次に、いくつかの追加機能を示します。
public Board() {
setBackground(Color.BLACK);
setFocusable(true);
setDoubleBuffered(true);
addKeyListener(new TAdapter());
x = 15;
y = 150;
dx = 5; //This is what I want to use to update the x variable if possible.
HEIGHT = 15;
WIDTH = 15;
}
これは、「x」変数と「y」変数を使用して正方形を作成した場所です。
public void paint(Graphics g) {
super.paint(g);
int red = 103;
int green = 10;
int blue = 100;
Color square = new Color(red, green, blue);
g.setColor(square);
g.fillRect(x, y, WIDTH, HEIGHT);
Toolkit.getDefaultToolkit().sync();
}
さて、私が達成しようとしていることについて説明します。
Action Performed メソッドに渡される「move」メソッドを作成し、キー イベントを処理する Key Adapter メソッドを作成しました。
public void move() {
x += dx;
}
public void actionPerformed(ActionEvent e) {
move();
repaint();
}
private class TAdapter extends KeyAdapter {
public void KeyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
dx = 1;
}
if (key == KeyEvent.VK_RIGHT) {
dx = -1;
}
}
}
ここに私が得ているもののスクリーンショットがあります:
すべては別のクラスを通じて明示されますが、さまざまな JFrame コンポーネント (サイズ、可視性など) を初期化し、プログラムを開始するだけです。
プログラムを実行すると、x 変数を更新できません。追加する必要があるものを誰かに教えてもらえますか?
ありがとう。