Ciao a tutti,
sto facendo un programma che importa una foto dal file system e la visualizza. Poi, sopra questa immagine ho la necessità di inserire delle X che hanno il significato di contrassegnare alcuni punti della foto.
L'ho realizzato e funziona corretamente fino a quando però non ho implementato lo zoom. Con lo zoom, la foto si allarga o restringe correttamente però le X rimangono della stessa dimensione e nella stessa posizione quindi perdono di significato in quando non sovrastano più ciò che dovrebbero contrassegnare.
Spiego meglio come ho realizzato il tutto.
La mia applicazione consta di un JFrame dove al suo interno ho inserito un JScrollablePane. Questo mi serve nel caso l'immagine sia più grande del Panel, mi compaiono in automatico le barre di scorrimento. La mia foto che deve stare sotto l'ho inserita tramite una JLabel. Anche le X le inserisco tramite delle JLabel e per poterle far stare sopra un'altra JLabel ho dovuto inserire dentro il JScrollablePane un JLayeredPane che mi permette di assegnare una profondità agli oggetti che vi sono contenuti. Dentro questo JLayeredPane appunto, inserisco la foto di background con livello DEFAUTL_LAYER e le X con livello PALETTE_LAYER.
Ora sorge il mio problema. Come posso fare per poter zoommare sia la foto in background che le X che la sovrastano, mantenendo le coordinate al cambio di dimensione dell'immagine. Può anche essere che così come è implementata l'applicazione non sia il modo corretto e che debba cambiare la struttura del programma. Accetto qualsiasi consiglio.
Ho trovato cercando in rete di una libreria JXLayer che però, al momento di fare jxPanel.add(jLabel) dove jLabel contiene le varie immagini, mi solleva un'eccezione di UnsupportedOperationException.
Vi ringrazio in anticipo per le risposte.
Ciao
firewings