Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Il JFrame come ti dicevo è a tutto schermo quindi in teoria il focus resta nell'applicazione. All'interno di pannelloCentro non ci stanno componenti grafiche nè nulla se non disegni fatti dal suo paintComponent.
    Dunque la finestra in teoria è così semplicemente composta:
    JFrame -> pannelloSfondo -> pannelloCentro
    poichè ho settato al JFrame pannelloSfondo come contentPane.
    Ho aggiunto un focusListener a pannelloSfondo in cui nel focusGained richiamo pannelloCentro.requestFocusInWindow, analoga cosa ho fatto con il Frame e il suo WindowFocusListener e relativo windowFocusGained ma c'è qualcosa che non funziona.
    Dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da valentino46 Visualizza il messaggio
    Ho aggiunto un focusListener a pannelloSfondo in cui nel focusGained richiamo pannelloCentro.requestFocusInWindow, analoga cosa ho fatto con il Frame e il suo WindowFocusListener e relativo windowFocusGained ma c'è qualcosa che non funziona.
    Dove sbaglio?
    Se vuoi che pannelloCentro abbia fin da subito (da quando crei la interfaccia) il focus, basta che fai
    pannelloCentro.setFocusable(true);
    e poi
    pannelloCentro.requestFocusInWindow();

    Appena il frame diventa visibile, pannelloCentro avrà il focus. Se pannelloCentro è l'unico componente "focusable" non devi nemmeno preoccuparti del fatto che l'utente possa (volutamente o per sbaglio) spostare il focus. Se anche attiva una finestra di un'altra applicazione e poi ritorna al tuo frame, non c'è dubbio che pannelloCentro riavrà il focus essendo .. l'unico che può avere il focus.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Ho risolto!
    In pratica stavo già facendo quanto da te suggerito ma richiamavo il requestFocusInWindow su pannelloCentro prima ancora di infilarlo in pannelloSfondo e quindi nel frame. Posticipando il metodo sopra detto il tutto sembra funzionare.
    Grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.