¿Cómo activar el marco activo (que tiene foco) (JInternalFrame) que está dentro de JDesktopPane? Lo necesito para mi bloc de notas MDI (no es que alguien lo use, solo un proyecto de capacitación). Al mirar api, solo veo funciones para obtener todos los JInternalFrames, no uno activo.JDesktopPane: cómo obtener el marco activo
Respuesta
Uso JDekstopPane.getSelectedFrame() método (de Doc:. Actualmente JInternalFrame activo en este JDesktopPane, o null si no hay JInternalFrame está actualmente activo) o JDesktopPane.getAllFrames()
obtener la lista de todos los JInternalFrames
que aparece en el escritorio y comprobar isSelected()
método.
Haga un List<JInternalFrame>
y marque isSelected()
mientras lo itera.
Adición: Vea también este example que usa Action
para seleccionar un marco interno de un menú.
Tenga en cuenta que [JDesktopPane.getAllFrames()] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JDesktopPane.html#getAllFrames()) devuelve una matriz, por lo que podría también itera la matriz (en lugar de usar una lista). –
-1 para reinventar la rueda. Se usarán getSelectedFrame() o getAllFrames(). – camickr
Es un policía rubio. – trashgod
¿Has mirado el tutorial de Java titulado How to Use Internal Frames? En su código, necesita un InternalFrameListener
(API) (Tutorial) y escuchar para activar/desactivar eventos. Activado significa que el marco interno fue llevado a la parte superior; desactivado significa que ya no está en la parte superior. Como JDesktopPane
se extiende JLayeredPane
, también puede establecer el orden z de los componentes que se le agregan.
No itere sobre todos los paneles - use eventos.
Si por alguna razón prefiere sondear su UI en lugar de utilizar un enfoque basado en eventos, puede llamar al getSelectedFrame
, que devuelve el JInternalFrame
activo. No estoy seguro de por qué nadie más lo mencionó.
+1 para acoplamiento flojo. ¿Puedes elaborar? – trashgod
@trashgod es bastante sencillo, ya que se crean 'JInternalFrames' y se adjunta' InternalFrameListener' a cada uno que realiza un seguimiento de qué marco está activo y cuál no. He actualizado mi respuesta un poco en caso de que al afiche no le interesen los eventos: 'JDesktopPane' tiene el método' getSelectedFrame'. – Paul
> En su código necesita un InternalFrameListener (API) (Tutorial) y escuchar para activar/desactivar eventos. > Activado significa que el marco interno fue llevado a la parte superior; desactivado significa que ya no está en la parte superior. > Como JDesktopPane amplía JLayeredPane, también puede establecer el orden z de los componentes que se le agregan. " En otras palabras, otro consejo sobre" Cómo hacer que su código sea más confuso y menos directo ". mi código es tan simple que incluso si nunca usaste Java lo entenderías. –
- 1. Scrollable JDesktopPane?
- 2. Cómo obtener el marco para NSStatusItem
- 3. ¿Cómo obtener "editor activo" en el plugin de Eclipse?
- 4. ¿Cómo obtener el actualmente activo UITextField/UITextView y resignFirstResponder?
- 5. ¿Cómo abro un JInternalFrame centrado en un JDesktopPane?
- 6. Cómo encontrar el control activo anterior: Delphi
- 7. Cómo obtener el sql generado por el marco de entidad
- 8. cómo obtener ventaja del marco sin estado
- 9. ¿Cómo obtener el marco de imagen mostrado desde UIImageView?
- 10. ¿Cómo obtener el marco de video del AVPlayer?
- 11. ¿Cómo utilizar el marco del núcleo bluetooth obtener datos?
- 12. ¿Cómo puedo obtener una lista de usuarios del directorio activo?
- 13. Cómo utilizar el registro activo sin rieles
- 14. Yii - Obtener el mínimo, el máximo de una columna utilizando el registro activo
- 15. En Python, ¿cómo obtengo el marco actual?
- 16. Cómo establecer el marco cell.imageview
- 17. Cómo incluir el marco SDWebImage
- 18. Obtener todos los usuarios del directorio activo en sharepoint
- 19. ¿Cómo activo DATETIME_FORMAT de Django?
- 20. ¿Cómo activo: confirmable en Devise?
- 21. Obtener el marco del teclado de forma dinámica
- 22. cómo obtener un solo valor usando marco de la entidad
- 23. Configurando el ejecutable activo en Xcode
- 24. ¿Para usar el objeto activo o no?
- 25. ¿Cómo verificar que el bloque CMS esté activo?
- 26. ¿Rieles cómo tocar el objeto de registro activo sin bloquear?
- 27. Cómo personalizar el botón Airplay cuando Airplay está activo
- 28. ¿Cómo supervisar el grupo de conexiones activo en SQL Server?
- 29. ¿Cómo activo el tabwidth de 2 en eclipse para erb?
- 30. ¿Cómo saber si MySQLnd es el controlador activo?
Gracias. Realmente me ayudaste Busqué algo como getActiveFrame o getFocusedFram y se pasó por alto getSelectedFrame;) –
+1 para usar la API. – camickr