Problemas de enfoque con los diálogos modales de java7 en mac osx

He estado validando una aplicación swing que se ejecuta en un applet para mac osx.

Durante esta validación encontré los siguientes problemas con los diálogos modales:

Cuando se abre un cuadro de diálogo y se establece setModal (verdadero), bloquea el contenido de la ventana raíz, pero si hace clic en algún lugar de la ventana raíz, el cuadro de diálogo se coloca debajo, pero debe permanecer en la parte superior de la ventana raíz.Si el cuadro de diálogo tiene un JTextInputField, no recibe el foco incluso cuando hace clic en él.

Así que creé un pequeño programa para mostrar el problema. ¿Me puede ayudar, por favor, a entender lo que está mal aquí?

package com.macosx.tests;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class DialogExample extends JApplet{

    private static final long serialVersionUID = 1L;
    private JPanel panel;
    private JButton openDialogBtn;

    private void doStart() {
        panel = new JPanel();
        panel.setPreferredSize(new Dimension(500,500));

        openDialogBtn = new JButton("open dialog");
        openDialogBtn.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {
                ModalDialog dialog = new ModalDialog(panel, true);
                dialog.setVisible(true);
            }

        });
        panel.add(openDialogBtn);
        setContentPane(panel);
    }


    class ModalDialog extends JDialog {
        private static final long serialVersionUID = 1L;

        public ModalDialog(Component parent, boolean modal) {
            Dimension dimensionParentFrame = parent.getSize();
            setSize(new Dimension((parent == null) ? 300 : dimensionParentFrame.width / 2, 75));

            setModal(modal);
            setModalityType(ModalityType.APPLICATION_MODAL);

            JTextField txtField = new JTextField();
            add(txtField, BorderLayout.CENTER);
        }
    }


    @Override
    public void start() {
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    doStart();
                }
            });
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}

Utilice lo anterior para crear un archivo .jar (test.jar). Una vez hecho esto, cree un archivo html con el siguiente contenido:

<html>
<head>
<title>Dialog test Applet</title>
</head>
<body>
<applet id="DialogTestApplet" height="800" width="600"
  code="com.macosx.tests.DialogExample"
  archive="test.jar">
</applet>
</div>
</body>
</html>

Cuando haya terminado, ejecute el archivo html. Verás un applet con un fondo gris y con un botón. Entonces trata de:

Haga clic en el botón para abrir el diálogo. Después de eso, haz clic en algún lugar del área gris: el cuadro de diálogo aparece debajo de la ventana del navegador, pero debería permanecer en la parte superior, ¿verdad?Haga clic en el botón para abrir el diálogo. Después de eso, haga clic en el campo de texto del cuadro de diálogo e intente escribir algo: el diálogo de texto no recibe el foco.

Entonces, ¿qué estoy haciendo mal aquí? ¿Puede alguien con una computadora mac probar esto por favor?

Gracias

Especificaciones:

java.vendor    Oracle Corporation
java.version   1.7.0_07
os.name        Mac OS X
os.version     10.7.4

browser        firefox 15

NOTA: tenga en cuenta que esto solo ocurre cuando el applet se ejecuta en el navegador y solo en mac osx.

Respuestas a la pregunta(9)

Su respuesta a la pregunta