El mismo código Java (en su mayoría) se ejecuta en todos los sistemas operativos / arquitecturas. Tiene varias APIs diferentes para dibujar formularios / ventanas. Algunas de estas API, por ejemplo. Swing le permite cambiar el aspecto y la sensación entre emular diferentes conjuntos de widgets. Por lo tanto, se puede escribir un programa para que le permita al usuario cambiar la apariencia.
La apariencia que se proporciona incluye OSX (como en la captura de pantalla superior) y Windows (varias formas) o Motif o GTK. La forma de configurar esto en Swing y para obtener más información, vea este documento de Oracle Tenga en cuenta que incluso La apariencia de OSX no coincide completamente con las pautas de Apple, por ejemplo posicionamiento del menú en la ventana y no en la parte superior de la pantalla.
Al igual que con cualquier sistema Windowing, siempre puede escribir programas que se comporten y se vean diferentes al estándar esperado. Sucede que para OSX, la mayoría de los desarrolladores se apegan a las pautas de Apple, pero incluso utilizando las API suministradas por Apple, puede tener una sensación diferente entre Carbon (originalmente Mac OS < = 9) y los programas Cocoa (originalmente NeXT). La AppStore le permite a Apple tener un poco más de control, pero no sé si las pautas de visualización de la reunión están realmente verificadas.