4753342: componente de nivel superior del swing debe redirigir añadir/eliminar métodos para contentPane
Descripción:
Contrariamente a la programación de AWT, JFrame
/JDialg
/JWindow
/JApplet
/JInternalFrame
no lo hacen le permite agregar Component
s, en su lugar debe aprender sobre JRootPane
y agregar niños Component
s a él. Esto agrega confusión innecesaria a los nuevos desarrolladores de .
Antes de 5,0, en un intento de añadir o eliminar un Component
de uno de estos nivel superior Component
s darían lugar a una excepción ser lanzado. En 5.0, no se lanzará ninguna excepción, en su lugar se agregará 0 eliminará el Component
del panel de contenido. Esto dio lugar a varias revisiones al javadoc de JFrame
, JDialog
, JWindow
, JApplet
y JInternalFrame
. Esto se ha resumido en javadoc de RootPaneContainer:
* For conveniance
* <code>JFrame</code>, <code>JDialog</code>, <code>JWindow</code>,
* <code>JApplet</code> and <code>JInternalFrame</code>, by default,
* forward all calls to <code>add</code> and its variants,
* <code>remove</code> and <code>setLayout</code> to the
* <code>contentPane</code>. This means rather than writing:
* <pre>
* rootPaneContainer.getContentPane().add(component);
* </pre>
* you can do:
* <pre>
* rootPaneContainer.add(component);
* </pre>
* <p>
* The behavior of <code>add</code> and its variants and
* <code>setLayout</code> for
* <code>JFrame</code>, <code>JDialog</code>, <code>JWindow</code>,
* <code>JApplet</code> and <code>JInternalFrame</code> is controlled by
* the <code>rootPaneCheckingEnabled</code> property. If this property is
* true, the default, then <code>add</code> and its variants and
* <code>setLayout</code> are
* forwarded to the <code>contentPane</code>, if it is false, then these
* methods operate directly on the <code>RootPaneContainer</code>. This
* property is only intended for subclasses, and is therefor protected.
Mi razón para pedir es que estoy enseñando Introducción CS y la todos los ejemplos del libro usan la notación antigua.Me gustaría poder darles a los estudiantes alguna razón por la cual una vez fue necesario dar el paso extra. –