3

基本的に、矢印キーを使用してフレーム内でJButton(または)を移動しようとしています。JLabel矢印キーの押下を検出する部分をうまく理解できました。今私がしたいのは、押されたキーに応じてボタン(またはラベル)の位置を変更することです。

たとえば、「UP」キーを押すと、ボタン/ラベルがたとえば5ピクセル上に移動するはずです。ボタンの位置を変更するプロパティが見つかりませんでした。

パネル内などにボタン/ラベルを貼る必要がありますか?

助けてください、それは宿題ではなく、ただ好奇心が強いです:)

4

2 に答える 2

1

パネルの代わりにグラフィックスを使用する方法です。したがって、それを描画するコードは次のようになります。

    public class panel extends JPanel{
public int X = 50; //Starting x
public int Y = 50; //Starting y
public panel(){

}
public void paintComponent(Graphics g){
    super.paintComponent(g);
    this.setBackground(Color.WHITE);
    g.drawString("Hello this will be moved", X, Y);//<--- This draws the text
}

}

このコードはテキストを描画し、繰り返し描画します。あなたがしなければならないのは、キーリスナーまたはこれまでに使用されたものだけです。

  X++;

また:

  Y++;

それは毎回1を追加します。したがって、キーを押すと、++ または -- に応じて、1 x ピクセルまたは y ピクセル、または前後に移動します。次に、これを JFrame に追加すると、画面に描画されます。

于 2012-06-07T03:20:46.717 に答える
0

生の画像の使用は、私が行っているアプリケーションでははるかに優れていますが、実行中に偶然見つけたものがあります;)

この事実は、ラベルの絶対配置(ボタンについては知らない)によって行うことができます。レイアウトマネージャーを使用せずに。私たちがしなければならないのは、次のことだけです。

setLayout(null);
Jlabel testLabel = new JLabel("Test Moving label");

これで完了です。設定する必要があります

testLabel.setBounds(XCoord+ insets().left, yCoord+ insets().top, 150, 25);

ここでxCoordyCoordは、ラベルの左上のピクセルの座標です。上記の行を actionListener に追加できます。私の場合、上、右、左の矢印キーを押すアクションです。それに応じて xCoord と yCoord を増減できます。

于 2012-06-15T19:13:45.073 に答える