public Button(final Game2048 game) {
        super("Go");
        setBorder(null);
        setBackground(new Color(0, 0, 0, 0));
        setFont(Game2048.FONT.deriveFont(20f));
        addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(final MouseEvent e) {
                if (e.getButton() != MouseEvent.BUTTON1 || game.animator.isPlaying())
                    return;
                final String username = game.username.getText();
                if (username.length() < 3 || username.length() > 20) {
                    game.username.blink();
                } else {
                    final String message = game.scoreboard.send(username);
                    if (message == null)
                        game.gameOver.reverse();
                    else
                        game.animator.add(new Error());
                }
            }
        });
        addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(final KeyEvent e) {
                game.dispatchEvent(e);
            }
        });
    }