Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Bottone che scorre

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51

    Bottone che scorre

    Ciao,
    stavo pensando che in fondo realizzare uno slider da soli si potrebbe fare. Si potrebbe mettere un'immagine (il binario) in una label e sovrapporgli un button con l'icona che rappresenta il pomello. Poi basterebbe poter trascinare il bottone con il mouse a destra e sinistra mantenendo invariata la cordonata y ecc ecc. Ora per fare il primo passo dovrei riuscire a spostare il bottone ho provato così:
    codice:
    jButton1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {       
            public void mouseDragged(java.awt.event.MouseEvent evt) {
                    jButton1.setLocation(evt.getX(), 40);
            });
    }

    Ma è un mezzo disastro. Il bottone si muove, la traiettoria è orizzontale, ma è totalmente instabile schizza facendo balzi. Anche se a fatica in un certo modo segue il mouse. Naturalmente vorrei uno spostamento fluido e controllato come lo è con il pomello di uno slider. Sicuramente ci deve essere la tecnica giusta.
    Se mi date una mano prima o poi lo riesco a fare sto slider personalizzato. Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Sono riuscito a fare questo prototipo:
    myslide1.jpg
    codice:
    addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
                public void mouseMoved(java.awt.event.MouseEvent evt) {
                   int pos;       
                   int bx=evt.getX();
                   if(bx<80){
                   pos=12;
                   }else if(bx>700){
                   pos=700-68;
                   }else pos=bx-68;
                  jButton1.setLocation(pos, 40);
                  jLabel1.setSize(bx-40, 40); 
    
                }
            });

    Il Listener è ora associato al JFrame, il bottone scorre fluidamente senza fliccare o saltare sarebbe perfetto se non che è al contrario ossia quando il mouse entra dentro il botone si ferma, la finestra non ascolta più. Torna a muoversi solo quando esce. Naturalmente dovrebbe muoversi solo quando il mouse entra nel botone e solo quando lo drago come nei classici slider.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da cersil Visualizza il messaggio
    stavo pensando che in fondo realizzare uno slider da soli si potrebbe fare. Si potrebbe mettere un'immagine (il binario) in una label e sovrapporgli un button con l'icona che rappresenta il pomello. Poi basterebbe poter trascinare il bottone con il mouse a destra e sinistra mantenendo invariata la cordonata y ecc ecc.
    Ma perché devi proprio complicarti la vita??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Ma perché devi proprio complicarti la vita??
    Perché voglio gestire Arduino tramite comunicazione seriale e realizzare delle interfacce che mi permettano di avere dei controlli: tipo voltometri, amperometri, manopole, slider, pulsanti e luci led che abbiano però anche un aspetto grafico decente. E poi è uno modo per capire come funziona il linguaggio. La vita se è poco complicata è banale e poco stimolante.
    Ciao

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da cersil Visualizza il messaggio
    avere dei controlli: tipo voltometri, amperometri, manopole, slider, pulsanti e luci led che abbiano però anche un aspetto grafico decente.
    A parte slider (JSlider) e pulsanti (JButton) del resto che hai detto non esiste nulla del genere nel framework Swing di base in Java Standard Edition.
    O cerchi e trovi una qualche libreria esterna che fornisca quei componenti specifici da usare e integrare in Swing .... oppure "tenti" tu di implementarli ma ti assicuro che non sarebbe una passeggiata ...

    Quote Originariamente inviata da cersil Visualizza il messaggio
    E poi è uno modo per capire come funziona il linguaggio.
    Il linguaggio Java si impara in altro modo .... non certo tentando implementazioni molto "avanzate" in Swing. E comunque andrebbe imparato un po' bene PRIMA di arrivare alle interfacce grafiche.

    Nell'altra discussione sugli slider, chiedevi cosa erano quelle "parentesi angolari". Vuol dire che non conosci i generics e probabilmente hai lacune tremendissime su molti altri concetti e feature del linguaggio. Queste lacune non le colmi programmando con Swing ... ma prendendo della buona documentazione (magari un buon libro) e studiando.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Hai ragione chiedo scusa!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    slider.jpg

    Ciao,
    A parte slider (JSlider) e pulsanti (JButton) del resto che hai detto non esiste nulla del genere nel framework Swing di base in Java Standard Edition.
    O cerchi e trovi una qualche libreria esterna che fornisca quei componenti specifici da usare e integrare in Swing .... oppure "tenti" tu di implementarli ma ti assicuro che non sarebbe una passeggiata ...


    In effetti non è stata una passeggiata ma sicuramente molto stimolante


    Nell'altra discussione sugli slider, chiedevi cosa erano quelle "parentesi angolari". Vuol dire che non conosci i generics e probabilmente hai lacune tremendissime su molti altri concetti e feature del linguaggio. Queste lacune non le colmi programmando con Swing ... ma prendendo della buona documentazione (magari un buon libro) e studiando.

    Si è vero, sono solo forse due mesi che ho cominciato a programmare in java, prima non sapevo neanche cosa fosse. Ancora non so che cosa sono le parentesi angolari. Ma questo non mi ha impedito di affrontare e risolvere il problema. Vedi ci sono due diversi approcci c'è quello che evidentemente preferisci tu (andbin) ossia prima conoscere profondamente tutto il linguaggio, magari il Reference a memoria, leggere migliaia di buoni libri e poi alla fine affrontare i problemi pratici. Poi c'è un'altro approccio, quello che preferisco io, ossia avere una conoscenza essenziale del linguaggio si, ma porsi subito davanti a dei problemi reali, cercare tutto quello che ti può servire, assemblare le nozioni acquisite, sperimentare e risolvere il problema. Con questa esperienza degli slider non ci crederai ma ho capito molti aspetti del linguaggio che pur avendoli studiati, mi sono letto 800 pagine Object Oriented && Java 5 di Claudio De Sio Cesari, non avevo compreso a pieno. Ad esempio l'uso appropriato del repaint che mi ha permesso di evitare quello sfarfallio dell'oggetto quando si dragava, il pattern Observer che mi ha fatto capire come poter colloquiare tra oggetti diversi, come creare una forma che abbia un'area sensibile al mouse diversa da quella quadrata ma ad esempio simile ad una stella o di qualsiasi forma, come gestire l'ordine di posizionamento ecc ecc. Sono stati illuminanti degli esempi qua e la sulla rete.
    Comunque, se ha qualcuno può interessare allego sia un'immagine per vedere i risultati ed il progetto per eseguire gli esempi, naturalmente c'è da lavorarci ancora molto, ma avere una classe che mi permetta di avere dei slider di qualsiasi forma estetica semplicemente passandogli i phat delle immagini mi sembra una buona cosa.
    Un salutone a tutti.
    Silvano
    File allegati File allegati

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 © 2024 vBulletin Solutions, Inc. All rights reserved.