2016-06-22 14 views
0

私は最初のゲームを書いています。ユーザーの名前をハイスコアチャートに追加したいと思います。ユーザーからの入力を得るための最良の方法は何ですか? JOptionを使用する点を除きます。グラフィックスを使用してユーザーからの入力を受け取ります

私は自分のゲームを引き続き描くことは言うまでもない。たぶん私はJTextFieldを使用できますか?

+0

あなたが台無しにあなたのゲームウィンドウのレイアウトをアップしたくない場合は、私はゲームが終了したときに作成されますJTextFieldを持つ新しいJFrameのを作ったり、あなた自身のTextFieldを作成するためのKeyListenerを使用してのいずれかを示唆していますこれは痛みになりますが、好みに合わせてカスタマイズすることができます。 – johmsp

+0

私は新しいJFrameを開くことが自分のゲームにとって最高の結果になると思います。どのようにしてKeyListenerを使って自分のtextFieldを作成できますか? –

+0

KeyListenerはキーストロークを記録し、ウィンドウにテキストを入力する場合と同じようにスクリーンに押された各キーをペイントするメソッドを呼び出すことができます。次に、ユーザが「入力」を押すのを検出し、キーストロークのリストを名前として保存することができます。キーリスナーに精通していない場合は、開始するためのコードを追加できます。 – johmsp

答えて

0

ゲームをJComponentにレンダリングするとします。はい、JTextFieldをレンダラーコンポーネントに追加するだけで済みます。また、すべての外観をカスタマイズする場合は、独自のテキストフィールドをレンダリングすることもできます。 、あなたのコード内

どこかのテキスト入力ボックスの場所を格納します。

カスタムレンダラを行うには。

あなたのレンダリングコードで
Rectangle r = new Rectangle(200,200,250,30); 
String text = ""; 

public void paintComponent(Graphics g){ 
    g.setColor(Color.blue); 
    g.fillRect(r.x, r.y, r.width, r.height); 
    g.setColor(Color.black); 
    // You can play with this code to center the text 
    g.drawString(text, r.x, r.y+r.height); 
} 

次に、あなただけのどこかにあなたのコンストラクタでのKeyListenerを追加する必要があります。

addKeyListener(new KeyAdapter(){ 
    public void keyPressed(KeyEvent e){ 
    text+=e.getKeyChar(); 

    //you might not need this is you are rendering constantly 
    repaint(); 
    } 
}); 
+0

これを行う方法の例を教えてもらえますか? –

+0

JTextFieldまたはレンダリングの例? – satnam

+0

レンダリングします。 –

関連する問題