Cómo usar ResourceBundle

Estoy tratando de comprender la internalización de las aplicaciones Java como se muestraaquí. Aunque no puedo He creado una clase que se extiendeListResourceBundle Como he dicho y tratado de recuperar las claves. Aunque sigo recibiendo una excepción. Si echas un vistazo al tutorial, dice usar.clase archivos. Esto no puede ser correcto, ¿verdad?

[ÁRBOL PROYECTO]

[Código fuente]

Aquí están las dos clases que estoy usando, solo una de los archivos MainWindow_xx_XX.java, ya que son básicamente los mismos. Primero el ListResourceBundle:

public class MainWindow_en_US extends ListResourceBundle {

    @Override
    protected Object[][] getContents() {
        return contents;
    }
    private Object[][] contents = {
        {"fileLabel", "File"},
        {"newSessionLabel", "New session..."},
        {"openSessionLabel", "Open session..."},
        {"saveLabel", "Save"},
        {"exitLabel", "Exit"},
        {"editLabel", "Edit"},
        {"toolsLabel", "Tools"},
        {"helpLabel", "Help"}
    };
}

Y ahora el método que utilizo para cargarlo:

    private static final int DEFAULT_LOCALE = 0;
    private ResourceBundle bundle;
    public static Locale locale;
    public static final Locale[] supportedLocales = {
        new Locale("en", "US"),
        new Locale("es", "ES")
    };

public MainWindow() {
    for (Locale i : supportedLocales) {
        if (i.getLanguage().equals(Locale.getDefault().getLanguage())) {
            locale = i;
            break;
        } else {
            locale = supportedLocales[DEFAULT_LOCALE];
        }
    }
    bundle = ResourceBundle.getBundle("MainWindow", locale); //EXCEPTION POINTS HERE!!!
    initComponents();
}

Sigo recibiendo la siguiente excepción. Sé que puedo hacerlo a través de archivos de propiedades, pero me molesta más allá de la razón el hecho de que no puedo hacer funcionar el tutorial extremadamente simple de Oracle.

Exception in thread "AWT-EventQueue-0" java.util.MissingResourceException: Can't find bundle for base name MainWindow, locale es_ES
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:796)
    at -.-.-.-.-.<init>(MainWindow.java:37)
    at -.-.-.-.MainWindow$2.run(MainWindow.java:145)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
    at java.awt.EventQueue.access$000(EventQueue.java:102)
    at java.awt.EventQueue$3.run(EventQueue.java:662)
    at java.awt.EventQueue$3.run(EventQueue.java:660)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Respuestas a la pregunta(2)

Su respuesta a la pregunta