Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Immagine in Jlabel, resize, draw......

    Come dice il titolo (cioè tutto) ho un bel casino per le mani. vi spiego brevemente:

    1-inserire una immagina in una JLabel (non è un problema con il setIcon)
    2-al click del mouse in un altro pannello devo disegnare un rettangolo con delle coordinate precise che mi vengono dall'altro pannello.

    I problemi adesso sono:
    Le dimensioni della immagine sono 2000 per 2829 ed in una interfaccia non ci stanno visto che ci sono altri pannelli e quindi mi visualizza solo una parte: dovrei implementare una specie di zoom o almeno per adesso aggiungere una scrollbar
    la label è gia all'interno di una jscrollpane ma non mi va lo scroll.
    Problema numero 2: come faccio a disegnare su una jLabel avendo le coordinate e quindi ricercarle all'interno della immagine??
    Grazie a tutti quelli che cercheranno di aiutarmi.

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

    Re: Immagine in Jlabel, resize, draw......

    Originariamente inviato da ermeglio20
    Le dimensioni della immagine sono 2000 per 2829 ed in una interfaccia non ci stanno visto che ci sono altri pannelli e quindi mi visualizza solo una parte: dovrei implementare una specie di zoom o almeno per adesso aggiungere una scrollbar
    Per lo scroll è sufficiente che metti il JLabel dentro un JScrollPane (ed è quest'ultimo che inserisci poi nel "contenitore" ... non più il JLabel!!!). Per lo zoom, si può ovviamente ridimensionare una immagine ... devi solo stabilire come e a seguito di che cosa.

    Originariamente inviato da ermeglio20
    la label è gia all'interno di una jscrollpane ma non mi va lo scroll.
    Ripeto quello che ho detto sopra in altro modo: non devi più fare contenitore.add(label) ma contenitore.add(scrollpane) (contenitore sarà es. il content pane di un JFrame o un JPanel).

    Originariamente inviato da ermeglio20
    Problema numero 2: come faccio a disegnare su una jLabel avendo le coordinate e quindi ricercarle all'interno della immagine??
    Detto in linea generale, si dovrebbe estendere JLabel .... ma JLabel è comunque un componente che ha già tutta una sua logica di disegno.
    Quindi non ti conviene fare una cosa del genere. Tanto vale che definisci una "tua" classe che estende JPanel e in paintComponent() disegni tu tutto quanto ... immagine più quello che ti pare.
    Se guardi tra i miei Java Examples (vedi firma) trovi esempi su come definire dei pannelli custom su cui disegnare in modo particolare/specifico.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    fatto quasi tutto, mi rimane solo da fare lo zoom dell'immagine nella jlabel; (penso di usare una dropdown e fare lo scale dell'immagine e poi gestirmi la percentuale in tutti i calcoli)

    Quello che voglio fare ora è: continuare a scrivere in questo post sperando che qlkn mi aiuti o aprirne un altro con un altro titolo visto che cambio un pò tema?

    cmq il problema è: ho l'immagine nella jlabel innestata in uno jscrollpane
    dato che riesco a ricavare le coordinate da un'altra parte, voglio che l'immagine e cioè il JScrollPane mi visualizzi direttamente la porzione d'immagine desiderata inquadrata da quelle coordinate.

    Avete qlk proposta?

  4. #4
    risolto!!
    ora posto la soluzione per altri

    this.jScroll.getHorizontalScrollBar().setValue(pos izioneX);
    this.jScroll.getVerticalScrollBar().setValue(posiz ioneY);

    ciao a tutti e grazie ancora andbin

  5. #5
    piccolo effetto collaterale:

    mi visualizza correttamente il rettangolo selezionato ma non mi disegna il rettangolo

    posto il codice

    Graphics g = this.jLabel.getGraphics();
    g.setColor(Color.BLUE);
    g.drawRect(Integer.parseInt(div[1]),Integer.parseInt(div[0]),Integer.parseInt(div[2]),Integer.parseInt(div[3]));

    this.jScroll.getHorizontalScrollBar().setValue(Int eger.parseInt(div[1]));

    this.jScroll.getVerticalScrollBar().setValue(Integ er.parseInt(div[0]));

    devo perforza riclickare per ottenere il rettangolo disegnato

    richiedo aiuto

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ermeglio20
    Graphics g = this.jLabel.getGraphics();
    g.setColor(Color.BLUE);
    g.drawRect(Integer.parseInt(div[1]),Integer.parseInt(div[0]),Integer.parseInt(div[2]),Integer.parseInt(div[3]));
    Questo pezzo dove l'hai messo??? Se hai disegnato "al volo" sul graphics (es. nell'evento di click di un pulsante, per dirne una) non va bene.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    ci hai preso al volo!!
    è nel onMouseClick perche ogni volta che clicco su una riga di un testo mi deve disegnare il rettangolo inquadrando la riga corrispondente nell'immagine e in + inquadrarla nel jscrollpane.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ermeglio20
    è nel onMouseClick perche ogni volta che clicco su una riga di un testo mi deve disegnare il rettangolo inquadrando la riga corrispondente nell'immagine e in + inquadrarla nel jscrollpane.
    Approccio sbagliato allora.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Originariamente inviato da andbin
    Approccio sbagliato allora.
    ok e quale approccio dovrei seguire secondo te?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ermeglio20
    ok e quale approccio dovrei seguire secondo te?
    Ma hai capito come funziona il painting in Swing??? In caso negativo: Performing Custom Painting
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.