2012-02-29 10 views
0

私の質問はどこが間違っていたのですか?それは私が楕円形をコントロールし、それを左右に前後に動かすことができるフレームを作って、それを矢印で動かすことになっています。でも今は楕円形にしたり、単語を挿入することさえできません。単純なイントロJavaゲームプログラミング

おそらく
import java.awt.Graphics; 
import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 

import javax.swing.JFrame; 


public class JavaGame extends JFrame{ 
    int x, y; 
    public class AL extends KeyAdapter { 
     public void keyPressed(KeyEvent e){ 
      int keyCode = e.getKeyCode(); 
      if(keyCode ==e.VK_LEFT){ 
      x--; 
     } 
     if(keyCode ==e.VK_RIGHT){ 
      x++; 
     } 
     if(keyCode ==e.VK_DOWN){ 
      y--; 
     } 
     if(keyCode==e.VK_UP){ 
       y++; 
     } 
    } 
    public void keyReleased(KeyEvent e){ 

    } 
} 
public JavaGame(){ 
    addKeyListener(new AL()); 
    setTitle("Game"); 
    setSize(250,250); 
    setResizable(false); 
    setVisible(true); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
public void Paint(Graphics g){ 
    x = 150; 
    y = 150; 
    g.fillOval(x, y, 15, 15); 
    repaint(); 
} 
public static void main(String[] Args){ 
new JavaGame(); 
} 
} 
+2

オフトピック:あなたは '再描画()'内側のペイントを呼び出すべきではありません。それはCPU時間を無駄にする無限の再描画を引き起こし、何度も有線で点滅するグラフィックを引き起こします。そして、示唆されているように、GUIチュートリアルを読んで、それを取得するには時間が必要ですが、その後は楽しいです:) –

答えて

7

Paintは、標準のJava paint方法ではありませんので。イベントループに似ているものは見当たりません。あなたはSwingチュートリアルなどをチェックしてみましたか?

+0

im newどうすればいいでしょう。 – user1241388

+2

@ user1241388:チュートリアルは、1)[The Really Big Index](http://docs.oracle.com/javase/tutorial/reallybigindex.html)、2)[Swingコンポーネントの使用](http: /docs.oracle.com/javase/tutorial/uiswing/components/index.html)、3)[2Dグラフィックス](http://docs.oracle.com/javase/tutorial/2d/index.html)、4) [Swingによるカスタムペインティング](http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html) –

4

推奨事項:

  • Daveが言うように、あなたがそうであっても正しい方法
  • をオーバーライドする必要がある、あなたはトップレベルのウィンドウではなく、から派生した要素に直接描画するべきではありませんJPanelやJComponentなどのJComponent
  • このクラスのpaintComponent(...)メソッドを描画します(通常)。
  • @Overrideアノテーションを使用して、クラスのメソッドを本当にオーバーライドしていることを確認します。
  • KeyListenerをSwingではなくKey Bindingsで使用しないでください。たとえば、

、ここに私のサンプルコードを見てください。How to make an image move while listening to a keypress in Java.

+1

彼はまた、 "Paints"を行うたびにxとyを150に設定します。これは、自分のKeyListenerの内容をオーバーライドしますやっている... – Hedja

関連する問題