Come ottenere il frame attivo (con focus) (JInternalFrame) all'interno di JDesktopPane? Ne ho bisogno per il mio blocco note MDI (non che qualcuno lo userebbe, solo un progetto di formazione). Guardando api, vedo solo le funzioni per ottenere tutto JInternalFrames, non attivo.JDesktopPane - come ottenere il frame attivo
risposta
Usa JDekstopPane.getSelectedFrame() metodo (Da doc. Attualmente JInternalFrame attivo in questo JDesktopPane, o null se non JInternalFrame è attualmente attivo) o JDesktopPane.getAllFrames()
ottenere l'elenco di tutti i JInternalFrames
attualmente visualizzato sul desktop e controllare isSelected()
metodo.
Creare un valore List<JInternalFrame>
e controllare isSelected()
mentre lo si itera.
Addendum: vedere anche questo example che utilizza Action
per selezionare una cornice interna da un menu.
Nota che [JDesktopPane.getAllFrames()] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JDesktopPane.html#getAllFrames()) restituisce un array, quindi potresti e basta semplicemente iterare la matrice (invece di usare una lista). –
-1 per reinventare la ruota. Verrebbero utilizzati getSelectedFrame() o getAllFrames(). – camickr
È un poliziotto imparziale. – trashgod
Hai esaminato il tutorial Java intitolato How to Use Internal Frames? Nel tuo codice hai bisogno di un InternalFrameListener
(API) (Tutorial) e ascolta per attivare/disattivare gli eventi. Attivato significa che la cornice interna è stata portata in alto; disattivato significa che non è più in alto. Poiché JDesktopPane
estende JLayeredPane
, è possibile anche impostare l'ordine z dei componenti aggiunti.
Non scorrere su tutti i riquadri: utilizzare gli eventi.
Se per qualche motivo si preferisce eseguire il polling dell'interfaccia utente anziché utilizzare un approccio event-driven, è possibile chiamare getSelectedFrame
che restituisce lo JInternalFrame
attivo. Non sono sicuro del motivo per cui nessun altro l'ha menzionato.
+1 per accoppiamento lento. Puoi elaborare? – trashgod
@trashgod è piuttosto semplice, poiché 'JInternalFrames' sono creati con' InternalFrameListener' è collegato a ciascuno che tiene traccia di quale frame è attivo e quale no. Ho aggiornato la mia risposta un po 'nel caso in cui il poster non si preoccupi degli eventi - 'JDesktopPane' ha il metodo' getSelectedFrame'. – Paul
> Nel tuo codice hai bisogno di un InternalFrameListener (API) (Tutorial) e ascolta per attivare/disattivare gli eventi. > Attivato significa che la cornice interna è stata portata in alto; disattivato significa che non è più in alto. > Poiché JDesktopPane estende JLayeredPane, puoi anche impostare l'ordine z dei componenti aggiunti. " In altre parole un altro suggerimento su" Come rendere il tuo codice più confuso e meno diretto. "Grazie, anche se terrò il mio codice è così semplice che, anche se non hai mai usato Java, lo capiresti: –
- 1. Come ottenere il conteggio thread attivo?
- 2. Come ottenere il frame video di AVPlayer?
- 3. Come si apre un oggetto JInternalFrame centrato in un JDesktopPane?
- 4. DirectShow - Ottenere frame video
- 5. Come posso ottenere il riferimento al modulo modale attualmente attivo?
- 6. Come ottenere il ramo corrente/attivo con LibGit2Sharp?
- 7. Come ottenere il menu del foglio attivo in PowerBuilder?
- 8. Come ottenere il modulo attualmente attivo nella mia applicazione?
- 9. Come ottenere "editor attivo" nel plugin Eclipse?
- 10. Come ottenere il frame dal file video in Android
- 11. Python, come posso ottenere i frame GIF
- 12. Come modificare l'immagine di sfondo predefinita di jdesktoppane?
- 13. Ottenere l'elemento attivo all'interno di ExtJS?
- 14. Ottenere il nome di un frame di dati
- 15. In Python, come ottengo il frame corrente?
- 16. Java; Ottenere inserimenti prima che il frame sia visibile
- 17. Come posso ottenere l'ultimo orario attivo dell'utente quando uso Devise?
- 18. Come ottenere API riposante attivo e funzionante con Wt
- 19. Come posso ottenere un elemento all'interno di un frame di frame usando JavaScript?
- 20. dynatree - Come scorrere verso il nodo attivo?
- 21. Come ottenere frame da .avi video usando OpenCV
- 22. Come ottenere il frame corrente (come Bitmap) per Android Faceetector in un evento Tracker?
- 23. come modificare il frame di ritaglio UIImagePickerController
- 24. iPhone: come impostare il frame di UIViewController?
- 25. Come posso ottenere il nome dell'utente attivo tramite la riga di comando in OS X?
- 26. Come ottenere un evento quando il controllo del testo perde lo stato attivo?
- 27. Come ottenere il esima riga N da frame di dati in R
- 28. come posso ottenere il numero di frame al secondo da un file GIF?
- 29. Rilevare se il wifi è attivo - iOS
- 30. Video Frame by Frame alla ricerca
Grazie. Mi hai davvero aiutato. Ho cercato qualcosa come getActiveFrame o getFocusedFram e ho trascurato getSelectedFrame;) –
+1 per usare l'API. – camickr