Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Disegnare un componente dentro ad un altro componente.

    Sto implementando un software di visualizzazione basato su un grafo, e per il momento sto usando JGraph, che ha la funzionalita' interessante di poter mettere un qualunque componente di sfondo al grafo. E questo e' molto interessante perche' mi consentirebbe di mettere di sfondo ad esempio un JPanel che contiene una mappa, oppure con una griglia, ecc.

    Pero' sto considerando di lasciar perdere JGraph e implementarmi il mio "GraphPanel" ovvero, mi disegno io a mano nodi e archi e ne gestisco il dragging come voglio io, implementando solo le cose che davvero mi servono invece che avere una libreria ricca di funzionalita' ma talvolta complicata da usare.

    Intanto, ha senso come scelta?

    Poi, se avesse senso, come posso fare a passare a questa mia classe GraphPanel un Component o meno in generale un JPanel e disegnarlo "nello sfondo" tenendo pero' anche conto che magari potrei dover passare degli eventi a questo panel di sfondo. Si puo' fare?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  2. #2
    up
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Torno sulla questione e la riformulo. Se non ho ricevuto risposta nemmeno da andbin mi fa pensare che ho malposto la domanda.

    Diciamo che voglio fare una cosa del genere:

    codice:
    public MyGraphPanel extends JPanel {
      private Component _bgComp;
      //...
      public setBackgrounComponent (Component bg) {
        _bgComp = bg;
      }
      //...
    
      public void paint (Graphics g) {
        super (g);
        if (_bgComp != null) {
          _bgComp.paint(g)
        }
        //My painting code here
      }
    }
    C'e' qualche controindicazione? Funzionerebbe?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Avevo fatto qualcosa di simile (un grafo con i nodi selezionabili e draggabili) per la tesi della laurea triennale... di sfondo usavo una immagine selezionabile dall'utente.

    Per esempio, non puoi andare a disegnare il tuo grafo sulla Graphics associata al componente che vuoi usare come "base", ottenuta tramite getGraphics()?

  5. #5
    Assumo che possa funzionare, ma dici che c'e' tanta differenza dalla mia soluzione alla tua?

    Il problema e' che ad esempio potrei avere il mio grafo rappresentato al di sopra di un componente anch'esso interattivo, che potrebbe essere ad esempio una mappa generata con qualche libreria (swingx ad esempio http://swinglabs.org/projects.jsp).
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mxa
    Se non ho ricevuto risposta nemmeno da andbin mi fa pensare che ho malposto la domanda.
    Ehm .. un pochino. Nel senso che l'obiettivo non dovrebbe essere quello di fare il painting di "componenti" dentro il painting di un tuo componente .... ma di disegnare quello che ti serve in termini di immagini, figure, linee, ecc... insomma quanto è possibile disegnare tramite Graphics/Graphics2D sfruttando le potenzialità di Java2D.

    E ovviamente tutto quanto sarebbe a tuo carico, painting, l'eventuale dragging delle figure se vuoi gestirlo e altro (es. selezione di una figura per modificarla/eliminarla). Un po' come fa il mio esempio DraggableFigures.java che trovi tra i miei Java Examples sezione Graphics. Giusto per intenderci.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Scusa, ci siamo accavallati con i post: hai pseudocodificato esattamente quello che intendevo!

    Non ho capito di preciso cosa intendi per "interattività", ma è ovvio che se il componente è noto anche ad altri thread che lo vanno a modificare, il tuo "sfondo" cambia di conseguenza

  8. #8
    Originariamente inviato da andbin
    Ehm .. un pochino. Nel senso che l'obiettivo non dovrebbe essere quello di fare il painting di "componenti" dentro il painting di un tuo componente .... ma di disegnare quello che ti serve in termini di immagini, figure, linee, ecc... insomma quanto è possibile disegnare tramite Graphics/Graphics2D sfruttando le potenzialità di Java2D.

    E ovviamente tutto quanto sarebbe a tuo carico, painting, l'eventuale dragging delle figure se vuoi gestirlo e altro (es. selezione di una figura per modificarla/eliminarla). Un po' come fa il mio esempio DraggableFigures.java che trovi tra i miei Java Examples sezione Graphics. Giusto per intenderci.
    Non ho molto capito cosa intendi. Ovviamente il painting del mio grafo e la gestione degli eventi e' tutto a mio carico. Al momento ho questo:



    Posso selezionare e draggare nodi e archi, e implementero' delle cose anche piu' sofisticate tipo dei popup menu su nodi ed archi.

    Ma diciamo che io abbia una libreria che mi fornisce un JPanel con la mappa interattiva del mondo, su cui posso zoommare in e out, posso draggare, posso abilitare e disabilitare dei layer. E voglio che il mio grafo venga visualizzato sopra quella mappa. Non sarebbe quindi corretto il mio approccio pseudocodato sopra?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.