私は最初のゲームを書いています。ユーザーの名前をハイスコアチャートに追加したいと思います。ユーザーからの入力を得るための最良の方法は何ですか? JOptionを使用する点を除きます。グラフィックスを使用してユーザーからの入力を受け取ります
私は自分のゲームを引き続き描くことは言うまでもない。たぶん私はJTextFieldを使用できますか?
私は最初のゲームを書いています。ユーザーの名前をハイスコアチャートに追加したいと思います。ユーザーからの入力を得るための最良の方法は何ですか? JOptionを使用する点を除きます。グラフィックスを使用してユーザーからの入力を受け取ります
私は自分のゲームを引き続き描くことは言うまでもない。たぶん私はJTextFieldを使用できますか?
ゲームを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();
}
});
あなたが台無しにあなたのゲームウィンドウのレイアウトをアップしたくない場合は、私はゲームが終了したときに作成されますJTextFieldを持つ新しいJFrameのを作ったり、あなた自身のTextFieldを作成するためのKeyListenerを使用してのいずれかを示唆していますこれは痛みになりますが、好みに合わせてカスタマイズすることができます。 – johmsp
私は新しいJFrameを開くことが自分のゲームにとって最高の結果になると思います。どのようにしてKeyListenerを使って自分のtextFieldを作成できますか? –
KeyListenerはキーストロークを記録し、ウィンドウにテキストを入力する場合と同じようにスクリーンに押された各キーをペイントするメソッドを呼び出すことができます。次に、ユーザが「入力」を押すのを検出し、キーストロークのリストを名前として保存することができます。キーリスナーに精通していない場合は、開始するためのコードを追加できます。 – johmsp