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

    Muovere JScrollPane contemporaneamente

    Salve a tutti vorrei, sapere se cè un modo per muovere 2 JScrollPane contemporaneamente, ora mi spiego meglio, ho 2 JList i cui elementi all' interno sono correlati, cioè che se per esempio nella prima cè il nome nella seconda cè il cognome (è un esempio questo), e se muovo la lista con il JScrollPane, gli elementi all'interno delle list si confondono, quindi io vorrei fare in modo che muovendone una scrollPane, si muova contemporaneamente anche l'altra, è strano quello che voglio fare..... e ci saranno sicuramente altri modi, ma vorrei sapere se si può realizzare comunque quello che voglio fare, se avete la soluzione, o avete trovato della pagine su internet dove posso leggere qualcosa su questo argomento ve ne sarei grato =)

  2. #2
    la cosa sinceramente non è bella...però credo che sia fattibile.
    intuitivamente se metti un ascoltatore sulla posizione della scrollbar dei nomi, ci sarà anche la possibilità di impostare una posizione sulla scrollbar dei cognomi.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sì. Tramite un AdjustmentListener:

    codice:
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Sincronizzatore implements AdjustmentListener {  
        JScrollBar v1, h1, v2, h2;  
       
        public Sincronizzatore(JScrollPane sp1, JScrollPane sp2) {
            v1 = sp1.getVerticalScrollBar();  
            h1 = sp1.getHorizontalScrollBar();  
            v2 = sp2.getVerticalScrollBar();  
            h2 = sp2.getHorizontalScrollBar();  
        }  
       
        public void adjustmentValueChanged(AdjustmentEvent e) {  
            JScrollBar scrollBar = (JScrollBar)e.getSource();  
            int value = scrollBar.getValue();  
            JScrollBar target = null;  
       
            if(scrollBar == v1)  
                target = v2;  
            if(scrollBar == h1)  
                target = h2;  
            if(scrollBar == v2)  
                target = v1;  
            if(scrollBar == h2)  
                target = h1;  
       
            target.setValue(value);  
        }  
    }
    Come si usa:

    codice:
    JScrollPane jsp1 = ...;
    JScrollPane jsp2 = ...;
    
    Sincronizzatore sinc = new Sincronizzatore(jsp1, jsp2);
    jsp1.getHorizontalScrollBar().addAdjustmentListener( sinc );
    jsp1.getVerticalScrollBar().addAdjustmentListener( sinc );
    jsp2.getHorizontalScrollBar().addAdjustmentListener( sinc );
    jsp2.getVerticalScrollBar().addAdjustmentListener( sinc );
    Chiaramente questo serve a sincronizzare entrambe le scrollbar (orizzontale e verticale)... se a te basta la verticale, aggiusta pure il codice di conseguenza.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4

    Grazie

    Non ho ancora provato il codice, ma ad occhio sempre avere senso, ti ringrazio molto

  5. #5
    provato va alla grande =)

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.