2012-04-17 4 views
-2

私はこれらのチュートリアルに続き、以下のものを作成しました。 http://www.youtube.com/playlist?list=PL54DB126285ED0420スクリーンに印刷してみませんか?

Main.java:

public class Main extends JFrame { 

    GamePanel gp; 

    public Main() { 
    gp = new GamePanel(); 
    setSize(500, 400); 
    setVisible(true); 
    setResizable(false); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    add(gp); 
    } 

    public static void main(String[] args) { 
    Main m = new Main(); 
    } 
} 

GamePanel.java:

public class GamePanel extends JPanel implements Runnable { 

    // Double Buffering Variables 
    private Image dbImage; 
    private Graphics dbg; 

    // JPanel Variables 
    static final int GWIDTH = 500, GHEIGHT = 400; 
    static final Dimension gameDim = new Dimension(GWIDTH, GHEIGHT); 

    // Game Variables 
    private Thread game; 
    private volatile boolean running = false; 

    public GamePanel() { 
    setPreferredSize(gameDim); 
    setBackground(Color.WHITE); 
    setFocusable(true); 
    requestFocus(); 

    // Handle all key inputs from the user 
    addKeyListener(new KeyAdapter() { 
     @Override public void keyPressed(KeyEvent e) {} 
     @Override public void keyReleased(KeyEvent e) {} 
     @Override public void keyTyped(KeyEvent e) {} 
    }); 
    } 

    public void run() { 
    while (running) { 
     gameUpdate(); 
     gameRender(); 
     paintScreen(); 
    } 
    }// END run 

    private void gameUpdate() { 
    if (running && game != null) { 
     // update the game state 
    } 
    } 

    private void gameRender() { 
    // create the buffer 
    if (dbImage == null) { 
     dbImage = createImage(GWIDTH, GHEIGHT); 
     if (dbImage == null) { 
     System.err.println("dbImage is still null!!!"); 
     return; 
     } else { 
     dbg = dbImage.getGraphics(); 
     } 
    } 

    // Clear the screen 
    dbg.setColor(Color.WHITE); 
    dbg.fillRect(0, 0, GWIDTH, GHEIGHT); 

    // Draw the game elements 
    draw(dbg); 
    } 

    // draw all game content 
    public void draw(Graphics g) {} 

    private void paintScreen() { 
    Graphics g; 
    try { 
     g = this.getGraphics(); 

     if (dbImage != null && g != null) 
     g.drawImage(dbImage, 0, 0, null); 

     // For Linux 
     Toolkit.getDefaultToolkit().sync(); 
     g.dispose(); 

    } catch (Exception e) { 
     System.err.println(e); 
    } 
    } 

    public void addNotify() { 
    super.addNotify(); 
    startGame(); 
    } 

    private void startGame() { 
    if (game == null || !running) { 
     game = new Thread(this); 
     game.start(); 
     running = true; 
    } 
    } 

    public void stopGame() { 
    if (running) 
     running = false; 
    } 

    private void log(String s) { 
    System.out.println(s); 
    } 
} 

それだけで画面上に "Hello World" の文字列を印刷する必要がありますが、それは行っていません。私はコードのいくつかの時間を行ってきましたが、何が間違っていたか見ることができませんでした。

文字列が表示されない原因は何もありません。

ありがとうございました。

+3

"Hello World"という文字列がコードのどこにも表示されません。 – thumbmunkeys

+0

あなたは「*「Hello World」という文字列を画面に表示するだけですが、実行していません。*「あなたにはあまりお答えできません。実行されていないことを正確に言及する。 – Lion

+1

"Hello World"を出力しようとするコード。文字列出力を生成する唯一のものは 'Log()'ですが、コードのどこでも呼び出されることはありません。あなたのコードの中に "Hello World"というフレーズは言及されていません。 –

答えて

0

大丈夫です。最後にそれを見つけました。

私のMain.javaでは、私はadd(gp);のコードを先頭に配置したいと思います。基本的にそれは下に落ちていたので。

P.S.ちょうど再び言及。ちなみに私はdrawメソッドの内容を消去しました。私の愚か者。そのために残念。それにはg.drawString("Hello World!", 100, 100);が含まれているはずです。

ありがとうございました。

-1

文字列が表示されない原因は何ですか?

「Hello World」の文字列自体はありません。

Javaを初めて使用しているように見えるので、もう一度参照したチュートリアルを参照することをお勧めします。

+0

このようなコメントを残してみませんか?明らかに**答えではありません**。 – Lion

+1

時にはこれは、答えのような質問のように起こります。なぜ裁判官か。 –