Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Manopola girevole

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

    Manopola girevole

    Salve,
    sto cercando di crearmi tutta una serie di oggetti tipo manopole, slider, manometri di vario genere, voltometri ,amperometri, luci led, pulsanti, interruttori ecc e magari creare una libreria. Questo per permettermi di controllare via seriale il microcontrollore Arduino. Qualche passetto in questa direzione l'ho fatto, la gestione della porta seriale è ok, ho realizzato slider personalizzabbili, ed ora stavo tentando di realizzare delle manopole ruotabili. Se la cosa può interessare a qualcuno vi vorrei far vedere un prototipo di manopola. E' possibile far girare la manopola sia in automatico che passo passo, modificarne il passo in gradi, la velocità ed il senso di rotazione. selezionando i radiobutton con Stick possiamo far ruotare la manopola vino al punto dove facciamo clic con il mouse, con roll possiamo trascinarla dove vogliamo. Penso alle applicazioni, ad esempio si potrebbe far girare un motore elettrico in un senso o nell'altro a diverse velocità comandandolo con i movimenti di questa manopola. Ma pensiamo alla domotica, ruotando la manopola potri alzare od abbassare la temperatura del riscaldamento, modificare l'intensità dell luci ecc. Vi allego una foto ed i sorgenti se vi interessa dategli un'occiata e fatemi sapere. Chissà le baggianate che ho scritto, amche se funziona.
    Un abbraccio.
    Silvano

    potete scaricare il materiale qui:

    http://www.cersil.it/jv/download/mano/mano.html

    Qui la foto
    mano.jpg

  2. #2
    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
    ora stavo tentando di realizzare delle manopole ruotabili. Se la cosa può interessare a qualcuno vi vorrei far vedere un prototipo di manopola.
    È proprio solo un prototipo "giocattolo". Nel MyIcon5 hai considerato male (o non considerato affatto) parecchie cose.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Ti prego di farmele capire sono qui per imparare e crescere, te ne sarei grato.
    Ciao.
    Silvano

  4. #4
    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
    Ti prego di farmele capire sono qui per imparare e crescere, te ne sarei grato.
    1) Innanzitutto hai usato nomi non buonissimi: hP, nwx, gr ecc... non danno bene l'idea di cosa siano e rendono il codice meno leggibile. Non tentare di abbreviare solo con l'obiettivo di digitare di meno.

    2) Hai messo il campo di istanza mousePt ma in realtà non serve lì. Quel punto è solo di passaggio nei due listener. Bastava una variabile locale (o passare "al volo" il punto al modAng).

    3)
    private Double wPd,hPd,nwx,nwy,gr,grc;

    hai usato Double (classe wrapper), non il primitivo double. Quindi hai boxing e unboxing automatici ovunque usi quelle variabili senza che te ne accorgi.

    4) Hai creato espressamente un EventListenerList. Nulla di sbagliato in sé. Ma probabilmente non sai che JComponent ha già il campo

    protected EventListenerList listenerList = new EventListenerList();

    che in quanto protected viene "offerto" da JComponent a tutte le sotto-classi ad uso interno/privato.

    5) Il tuo componente non ha un "preferred size", quindi non può essere usato in un layout manager che rispetta il preferred size (es. FlowLayout).

    6) Hai usato Math.atan ma probabilmente non hai notato l'esistenza di Math.atan2 che è fatto proprio apposta per scenari del genere e ti solleva da buona parte di quella logica che hai fatto vicino al Math.atan.

    7) Hai creato un listener e event specifici. Nulla di sbagliato in sé ma l'hai fatto per comunicare il valore come stringa, cosa che è un po' discutibile.

    Giusto le cose più evidenti.
    Ultima modifica di andbin; 25-02-2018 a 16:23
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Grazie andbin, molto gentile.
    Ora cerco di sistemare le cose che mi hai detto poi magari passiamo alle altre.
    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Ciao,
    ho sistemato le cose che mi hai detto.
    Riguardo a:
    Hai creato un listener e event specifici. Nulla di sbagliato in sé ma l'hai fatto per comunicare il valore come stringa, cosa che è un po' discutibile.
    Avevo pensato di inviare alla classe in ascolto Mano5.java una stringa già formattata ossia il valore dell'angolo scritto con due decimali dopo il punto all'inglese, in questo modo: val=String.format(new Locale("en"),"%1$.2f",gra); già pronto per essere visualizzato nella label, forse intendi con "cosa che è un po' discutibile." che è più veloce inviare un double e farlo formattare da Mano5 invece che inviarglielo già formattato. O sennò quale è il motivo?
    Per Math.atan2 me lo devo andare a studiare per capire dove è l'ottimizzazione.
    Grazie ancora.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    51
    Fantastico Math.atan2. Mi ha fatto risparmiare 10 righe di codice ed un'ora di rompicapo.
    Grazieeeee.

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.