Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    [Java] Domanda su Jframe e JDialog

    Ciao a tutti,

    è sorta la necessità di aprire un JDialog.. vorrei sapere qual'è il modo migliore..cioè,
    Il JDialog che voglio far aprire deve essere una finestra contenente delle impostazioni, che poi l'utente potrà scegliere (selezionare ad esempio).

    Io ho creato una nuova classe che implementi appunto JDialog..ora non so se lasciare la gestione al JFrame (da dove viene creata l'istanza della classe che estende JDialog) di tutti gli eventi generati dal JDialog, oppure se farli gestire dal JDialog..

    ..sulla base di questo mi chiedo: se ricevo gli eventi dalla classe che estende JDialog, come faccio a gestirne le "configurazioni" nel frame?
    (le opzioni scelte/modificate da questa classe, poi sono quelle che vengono utilizzate dal JFrame).
    ..e per queste operazioni è meglio estendere JDialog (come ho fatto) o JFrame?


    Grazie!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Passerei un riferimento al JFrame (o addirittura ad elementi specifici contenuti nel JFrame) al costruttore della JDialog e apporterei le necessarie modifiche direttamente dal JDialog, implementandone all'interno i necessari listener.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Domanda su Jframe e JDialog

    Originariamente inviato da Patrick Jane
    è sorta la necessità di aprire un JDialog.. vorrei sapere qual'è il modo migliore..cioè,
    Il JDialog che voglio far aprire deve essere una finestra contenente delle impostazioni, che poi l'utente potrà scegliere (selezionare ad esempio).

    Io ho creato una nuova classe che implementi appunto JDialog..ora non so se lasciare la gestione al JFrame (da dove viene creata l'istanza della classe che estende JDialog) di tutti gli eventi generati dal JDialog, oppure se farli gestire dal JDialog..

    ..sulla base di questo mi chiedo: se ricevo gli eventi dalla classe che estende JDialog, come faccio a gestirne le "configurazioni" nel frame?
    (le opzioni scelte/modificate da questa classe, poi sono quelle che vengono utilizzate dal JFrame).
    ..e per queste operazioni è meglio estendere JDialog (come ho fatto) o JFrame?
    Se lo scenario è quello in cui il JFrame fa aprire (a seguito di qualcosa) un JDialog (tipicamente "modale") per richiedere la modifica e/o inserimento di valori o dati di configurazione, allora sarebbe meglio fare la gestione della dialog nel modo più separato e incapsulato possibile.

    Ovvero eventi e cose particolari della dialog, andrebbero gestiti e tenuti nascosti nella implementazione della dialog e far passare avanti/indietro solo dei dati, magari tramite uno o più "bean" e con l'uso di appositi metodi getter/setter.

    Mi spiego con un esempio: una dialog che mostra e gestisce l'inserimento dei dati di una persona (es. nome e cognome). Il codice per mostrare la dialog potrebbe essere questo:

    codice:
    DialogPersona dlgPers = new DialogPersona(tuoFrameParente);
    
    dlgPers.setNome(....);       // un default o un valore precedente
    dlgPers.setCognome(....);    // un default o un valore precedente
    
    if (dlgPers.visualizza()) {    // qui è "bloccante", ritorna solo a dialog chiusa (con OK/Annulla o altro)
        // confermato
        String nome = dlgPers.getNome();
        String cognome = dlgPers.getCognome();
        ....
    } else {
        // ... annullato ....
    }
    Ovviamente è solo una ipotesi, che puoi farcire e variare come vuoi (es. l'uso di un apposito bean Persona invece che i campi separati, utile se poi il bean Persona dovesse "crescere" come campi in futuro).

    Ma quello che puoi vedere facilmente è che non devi gestire nulla su questo lato (cioè la parte "client" che usa la dialog) circa gli eventi e le cose specifiche della dialog!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    Re: Re: [Java] Domanda su Jframe e JDialog

    [QUOTE]Originariamente inviato da andbin
    Se lo scenario è quello in cui il JFrame fa aprire (a seguito di qualcosa) un JDialog (tipicamente "modale") per richiedere la modifica e/o inserimento di valori o dati di configurazione, allora sarebbe meglio fare la gestione della dialog nel modo più separato e incapsulato possibile.

    Ovvero eventi e cose particolari della dialog, andrebbero gestiti e tenuti nascosti nella implementazione della dialog e far passare avanti/indietro solo dei dati, magari tramite uno o più "bean" e con l'uso di appositi metodi getter/setter.
    /QUOTE]

    Ok, ti ringrazio per la delucidazione!

    Forse il mio problema è un pò più "complesso". Provo ad esporti il problema in modo comprensibile..

    Idea 1:

    Dentro al JFrame ho 2 Tabbed (chiamare rispettivamente "disegno" e "source").
    Su questo Frame c'è la barra di menu, con i vari pulsanti, uno di questi è quello per la configurazione (che va ad aprire il JDialog).

    Lo scopo sarebbe quello di utilizzare il JDialog per impostare alcuni attributi: colore dei link, del testo..ecc il tutto sottoforma di clasi CSS. Ad esempio, suppiniamo venga impostato il titolo <h1> in rosso e al centro..
    A questo punto l'utente scrive il testo, seleziona la parte da interessata e dice (cliccando sul pulsante preposto) che quel testo è l'<h1>..
    Per far tornare questo valore (e grazie alla tua illuminazione), avrei pensato di chiamare un metodo, in modo da far tornare i "dettagli" sul tag <h1> (quindi rosso e centrato).

    Idea 2:

    Ho il JFrame, al suo interno i pulsanti per automentare dimensione, cambiare colore, aggiungere link..eccetera.. tutte queste operazioni vengono fatte selezionando il testo e cliccando su uno dei pulsanti.
    Qui non ci sono CSS, quindi ogni volta che viene selezionato un tag, devono essere impostati gli attributi desiderati..


    Che mi consigli di fare?

    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 © 2025 vBulletin Solutions, Inc. All rights reserved.