使用图形从用户获取输入

时间:2016-06-22 19:56:20

标签: java input 2d-games

我正在写第一个游戏,我想将用户名添加到高分图表中。获取用户输入的最佳方法是什么?除了使用JOption。

无需指定我持续不断地绘制游戏。也许我可以使用JTextField?

1 个答案:

答案 0 :(得分:1)

假设您正在将游戏渲染到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();
  }
});