style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Nueva ayuda en netbeans

Hola amigos, recurro a ustedes nuevamente para pedirles ayuda.

Tengo que hacer un programa en netbeans que tenga 3 sliders, uno de grados centigrados, otro de farenheit, y otro de kelvin.

El chiste es que cuando mueva el slider por ejemplo de los centigrados, los otros 2 se muevan tambien haciendo la respectiva conversion.

Realmente apenas ayer nos enseñaron como hacer los sliders, asi que no tengo ni una puT%& idea de como hacerlo.

Ojala y puedan echarme la mano con este nuevo problemilla.

Ya saben que van las chelas de por medio.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

escalas

Pues depende cómo quieres que se muevan, y de dónde a dónde van. Por ejemplo el de Kelvin pues empieza en 0 obviamente, pero hasta dónde quieres que vaya? Unos 400º más o menos? Y el de Celsius va entonces de -273 a 127, y entonces se mueven igualito (siempre deben estar en la misma posición). Si calibras bien la escala del slider para Fahrenheit, puedes hacer algo similar (debe ir de la temperatura equivalente a 0ºK a 400ºK para que cuando muevas uno de los sliders hasta la izquierda, los otros dos queden también en la misma posición, y cuando muevas cualquiera de los 3 hasta la derecha, los otros 2 queden igual hasta la derecha). Los sliders de K y C se moverán en paralelo siempre y el de F probablemente se moverá un poco distinto. No recuerdo ahorita la fórmula de conversión de Fahrenheit a Celsius pero tienes que tener lista la conversión en ambas direcciones.

Y al final lo que tienes que hacer es ponerle un ChangeListener a cada JSlider (puede ser el mismo o puedes tener uno separado para cada slider). Este ChangeListener debe tener referencias a los 3 sliders (o a los otros 2 que no son los que le van a informar de su nuevo valor), para actualizarlos cuando reciba notificación del cambio.

Si quieres que al terminar de mover un slider se actualicen los otros dos, es fácil. La mayor bronca será si quieres que se vea contínuo, es decir que conforme mueves un slider se van moviendo los otros dos, porque entonces tienes que trabajar con SwingWorker para actualizar los eventos fuera del EDT.

Imagen de ezamudio

Groovy

Para que te des una idea, pero sin hacerte toda la tarea, te dejo el ejemplo con los sliders de Kevin y Celsius, ya nomás tendrías que agregar el de Fahrenheit, pero en Groovy usando SwingBuilder:

new SwingBuilder().edt {
  frame(title:'Sliders', show:true, size:[600, 100]) {
    def cSlider, kSlider
    def cLabel, kLabel
    vbox {
      hbox {
        cSlider = slider(minimum:-273, maximum:127, majorTickSpacing:10, minorTickSpacing:5, paintTicks:true, value:0)
        cLabel = label(text:"   0")
      }
      hbox {
        kSlider = slider(minimum:0, maximum:400, majorTickSpacing:10, minorTickSpacing:5, paintTicks:true, value:273)
        kLabel = label(text:"273")
      }
      cSlider.stateChanged = {
        kSlider.value = cSlider.value+273
        kLabel.text = kSlider.value
      }
      kSlider.stateChanged = {
        cSlider.value = kSlider.value-273
        cLabel.text = cSlider.value
      }
    }
  }
}

Pues mira el tope son 100

Pues mira el tope son 100 grados centigrados

De antemano gracias por la ayuda, tratare de avanzar en netbeans y si lo acabo se los posteo por si a alguien mas le interesa.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">