Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Cerco di essere pi� chiaro.
    Tutti gli esempi che ho trovato on line gestiscono un eventuale input dell'utente tramite un dialog. Il classico campo di testo con il bottone "invia" che quando viene premuto apre la finestra del dialog e dice "OK HAI SCRITTO XXXXX".
    Questo si assimila a una pagina HTML con un form il cui risultato viene elaborato in un popup (ok, non � proprio cos� ma sto cercando di farmi capire!).

    Io vorrei replicare il sistema della programmazione web in cui l'elaborazione del form viene fatta in una pagina con lo stesso layout (e quindi suppongo che si verifichi nella finestra principale dell'applicazione java).
    Magari il paragone � sbagliato, nel caso mi basterebbe capire il punto di partenza da cui sbaglio!

    Esempio banale:

    La mia applicazione Java consente di caricare un'immagine e rimpicciolirla.
    All'apertura ho un JPanel con un campo che mi consente di caricare l'immagine dal FileSystem.
    Cliccando sul bottone "upload" parte l'elaborazione con varie classi che prendono il file, controllano che sia del tipo giusto, rimpiccioliscano e diano un messaggio di conferma OPPURE se qualcosa va storto diano un errore.
    Questo errore va visualizzato nello stesso JPanel possibilmente sostituendo il campo presente in precedenza.

    (NB: non sto chiedendo se questa � la tecnica migliore, voglio solo capire se � fattibile con Java Swing e, nel caso, come farlo!)

    Spero di essere stato pi� chiaro
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Nunkij Visualizza il messaggio
    Io vorrei replicare il sistema della programmazione web in cui l'elaborazione del form viene fatta in una pagina con lo stesso layout (e quindi suppongo che si verifichi nella finestra principale dell'applicazione java).
    Magari il paragone � sbagliato, nel caso mi basterebbe capire il punto di partenza da cui sbaglio!

    Esempio banale:

    La mia applicazione Java consente di caricare un'immagine e rimpicciolirla.
    All'apertura ho un JPanel con un campo che mi consente di caricare l'immagine dal FileSystem.
    Cliccando sul bottone "upload" parte l'elaborazione con varie classi che prendono il file, controllano che sia del tipo giusto, rimpiccioliscano e diano un messaggio di conferma OPPURE se qualcosa va storto diano un errore.
    Questo errore va visualizzato nello stesso JPanel possibilmente sostituendo il campo presente in precedenza.

    (NB: non sto chiedendo se questa � la tecnica migliore, voglio solo capire se � fattibile con Java Swing e, nel caso, come farlo!)
    Allora chiariamo bene: all'interno di un frame/dialog Swing, a seguito di "eventi" (quindi dopo che la interfaccia è stata costruita e visualizzata inizialmente) puoi fare un po' tutte le modifiche che ti pare ai componenti: spostarli, ridimensionarli, rimuoverli o aggiungerne di nuovi. Si PUO' fare tutto, tecnicamente.
    È solo questione di avere BEN chiaro come funziona il layout dei componenti in AWT/Swing, con/senza un layout manager e se si usa uno o più dei layout manager predefiniti, bisogna chiaramente conoscerne caratteristiche, vincoli, ecc.. Insomma, serve lo STUDIO di tutte queste cose. Una volta che hai queste nozioni, tecnicamente potresti fare quello che ti pare.

    Prendiamo l'esempio (banale a dire il vero) di un semplice messaggio di errore per fare una segnalazione all'utente. Teoricamente/tecnicamente sarebbe assolutamente possibile far "comparire" al centro della finestra (la STESSA finestra, attenzione, non una nuova finestra/dialog) un pannellino (magari con sfondo .. bordi ecc... particolari) con il messaggio e un pulsante di chiudi/ok. Ci sono però questioni molto "spinose" su un approccio di questo tipo. Se il pannellino di errore è nella stessa finestra, è "imparentato" in un certo senso con gli altri componenti, che continuerebbero ad essere di per sé usabili. Vuoi bloccare l'accesso a questi componenti finché non viene premuto il pulsante chiudi/ok sul pannellino di errore? Se sì, è tecnicamente possibile ma NON è banale. Se no, cosa vuoi che succeda se l'utente interagisce con un altro componente? Che si rimuova in automatico il pannellino di errore?

    Insomma, lo scenario è FATTIBILE ma non è banale e impone un po' di valutazioni. E oltretutto rendere "replicabile" e facilmente riutilizzabile questo approccio su più frame diversi richiede un bel impegno dal punto di vista del design a livello object-oriented.

    Per questi (e altri motivi che sicuramente ora mi sfuggono), questo NON è l'approccio tipico nelle interfacce desktop. In Swing, se c'è un errore "bloccante" e vuoi mostrarlo all'utente, la cosa più semplice e tipica è usare JOptionPane che offre tutta una serie di dialog "standard" per informazioni, errori, ecc...

    How to Make Dialogs

    Morale di tutto questo: se vuoi realizzare cose particolari (come l'esempio del pannellino di errore) per tuo sfizio o perché ci sono necessità/requisiti ben precisi ... va beh (chiudiamo un occhio) ... ok ... si può anche fare, come detto.
    Ma in generale NON cercare di forzare un paradigma di interazione verso l'utente prendendo spunto da tutto un altro contesto (es. web application) dove l'interazione dell'utente con la web app è radicamente differente per le tecnologie utilizzate.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.