Haga clic derecho en JButton

Estoy tratando de escribir un clon de Buscaminas en Java por diversión. Tengo una cuadrícula de JButtons cuyas etiquetas cambiaré para representar el conteo de peligro, las banderas, etc.

Mi problema es que no sé cómo hacer clic derecho en un JButton para presionar el botón. He hecho lo siguiente:

button.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
        boolean mine = field.isMine(x, y);
        if (e.isPopupTrigger()) {
            button.setText("F");
        }
        else {
            if (mine) {
                button.setText("X");
            }
        }
    }
});

Esto no parece estar funcionando en absoluto; la "F" nunca se muestra, solo la parte "X". Pero lo que es más importante, esto no hace nada por presionar el botón.

EDITAR: las Mac tienen un desencadenador emergente en mousePress, no mouseClick.

EDITAR: Aquí está la solución que encontré basada en la respuesta aceptada:

button.addMouseListener(new MouseAdapter(){
            boolean pressed;

            @Override
            public void mousePressed(MouseEvent e) {
                button.getModel().setArmed(true);
                button.getModel().setPressed(true);
                pressed = true;
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                //if(isRightButtonPressed) {underlyingButton.getModel().setPressed(true));
                button.getModel().setArmed(false);
                button.getModel().setPressed(false);

                if (pressed) {
                    if (SwingUtilities.isRightMouseButton(e)) {
                        button.setText("F");
                    }
                    else {
                        button.setText("X");
                    }
                }
                pressed = false;

            }

            @Override
            public void mouseExited(MouseEvent e) {
                pressed = false;
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                pressed = true;
            }                    
        });
        add(button);

El clon del dragaminas http://grab.by/1y9z

Respuestas a la pregunta(8)

Su respuesta a la pregunta