在Java中无需摆动即可获得文本输入

时间:2015-09-08 02:40:24

标签: java swing input jtextfield

您好我在Java中制作一个随机生成100个数字的游戏,然后 要求用户尽可能多地记忆,然后尝试尽可能多地回忆。我的游戏使用JPanel和Graphics g对象来完成所有绘图。我如何"画"一个JTextfield或者让一个人在jpanel上工作?

1 个答案:

答案 0 :(得分:3)

将ActionListener添加到JTextField,然后将该JTextField添加到JPanel。现在使用tomcatRun将此JPanel添加到JFrame 创建一个新的JPanel类板,用于绘制内容。将JPanel添加到JFrame,this.add(jpnel, BorderLayout.SOUTH);。 在这里,我为您编写了一个示例。现在你应该知道如何做到这一点......

董事会成员

this.add(new Board(), BorderLayout.CENTER);

窗口类

    public class Board extends JPanel {

    int[] numbers = {3, 25, 5, 6, 60, 100};
    int index = 0;
    static String num;
    boolean once = true;
    FontMetrics fm;

    Board() {
        setPreferredSize(new Dimension(400, 200));
        setBackground(Color.decode("#ffde00"));
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2 = (Graphics2D) g;
        if (index < 6) {
            num = numbers[index] + "";
        } else {
            num = "Game Ended.";
            Window.ans.setEditable(false);
        }
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setFont(new Font("Arial", Font.PLAIN, 50));
        if(once){
            fm = g2.getFontMetrics();
            once = false;
        }
        int x = ((getWidth() - fm.stringWidth(num)) / 2);
        int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();
        g2.drawString(num + "", x, y);
        index++;
    }

}