Como usar Sliders em Java

Java permite que você use controles deslizantes em sua programação. UMA deslizante é um componente que permite que um usuário escolhe um valor de um intervalo definido (por exemplo, de 0 a 50), movendo um botão. Um controle deslizante é uma maneira conveniente para obter a entrada numérica do usuário quando a entrada cai dentro de um intervalo definido de valores.

image0.jpg

Para criar um controle deslizante, você usa o JSlider classe. Confira os seus construtores e métodos.

ConstrutorDescrição
JSlider ()Cria um novo slider. Os valores mínimo e máximo padrão para0 e 100, eo valor inicial é definido como 50.
JSlider (int min, int max)Cria um novo controle deslizante com o mínimo e maximumvalues ​​especificado. O valor inicial é meio caminho entre a andmaximum mínimo.
JSlider (int min, int max, intvalue)Cria um novo controle deslizante com o mínimo, máximo, valores andinitial especificados.
JSlider (orientação int, int min, int max, int valor)Cria um novo controle deslizante com o mínimo, máximo, valores andinitial especificados. A orientação pode ser JSlider.HORIZONTAL ou JSlider.VERTICAL.
MétodoDescrição
vazio addChangeListener (ChangeListenerlistener)adiciona um ChangeListener para ouvir eventos forchange.
int getValue ()Obtém o valor indicado pela posição atual do theknob.
anular setFont ()Define a fonte do texto associado com o controle deslizante.
vazio setInvert (valor booleano)E se verdade, inverte o slider'sdirection de modo a que o valor máximo está à esquerda e o MinimumValue está à direita.
setMajorTickSpacing void (intvalue)Define o intervalo para as principais marcas de escala. As marcas, a menos que aren'tshown setPaintTicks (true) é chamado.
vazio setMinimum (valor int)Define o valor mínimo.
vazio setMaximum (valor int)Define o valor máximo.
setMinorTickSpacing void (intvalue)Define o intervalo para as marcas menores. As marcas, a menos que aren'tshown setPaintTicks (true) é chamado.
setOrientation (int orientação)Define a orientação. Os valores permitidos são JSlider.HORIZONTAL e JSlider.VERTICAL.
setPaintLabels void (booleanValue)E se verdade, mostra rótulos de escala.
setSnapToTicks void (booleanValue)E se verdade, arredonda o valor retornado bythe getValue método para a marca indicadora mais próxima.
setToolTipText vazioDefine o texto dica de ferramenta que é exibido se o usuário (String text) repousa o ponteiro do mouse sobre theslider por alguns momentos.

Para criar um controle deslizante nu-ossos, basta ligar para o JSlider construtor. Você pode criar um controle deslizante que varia de 0 para 100 como isso:

deslizante = new JSlider () -

aqui o deslizante variável é declarada como uma variável de classe do tipo JSlider.

Se você deseja especificar o valor mínimo e máximo, usar esse construtor:

deslizante = new JSlider (0, 50) -

O controle deslizante permite que o usuário escolha um valor 0 para 50. A posição inicial do botão está 25, a meio caminho entre os valores mínimo e máximo.

Para definir um valor inicial diferente, usar esse construtor:

deslizante = novo JSlider (0, 0, 50) -

Aqui, as barra alcança de 0 para 50, e o valor inicial é 0.

Você normalmente deseja adicionar pelo menos alguns adornos para o controle deslizante para torná-lo mais utilizável. O controle deslizante que você vê tem valores mínimos e máximos tick-marca com etiquetas visíveis. Aqui está o código usado para criá-lo:

deslizante = new JSlider (0, 50, 0)-slider.setMajorTickSpacing(10)-slider.setMinorTickSpacing(1)-slider.setPaintTicks(true)-slider.setPaintLabels(true)-panel1.add(slider)-

Nota: Mesmo que defina os maiores e menores valores tick-espaçamento, as marcas de escala não aparecerá na tela a menos que você chamar setPaintTicks com o conjunto de parâmetro para verdade. o setPaintLabels metodologia mostra as etiquetas junto com as marcas de escala, eo setSnapToTicks método arredonda o valor para a marca de escala mais próxima.

Para obter o valor do controle deslizante, você usa o getValue método. Aqui está um método chamado a partir do ouvinte de ação anexado ao botão OK:

public void buttonOKClick () {int level = slider.getValue () - JOptionPane.showMessageDialog (slider, ". Lembre-se, este é para a posteridade n" + "? Diga-me ... como você se sente", "Nível" + nível, JOptionPane.INFORMATION_MESSAGE) -}

Aqui uma caixa de mensagem é exibida quando o usuário clica no botão OK. A configuração atual do deslizante componente é recuperada e armazenada em um int variável chamada nível, que é então utilizado para criar o título para a caixa de mensagens.

Você também pode adicionar um ouvinte de evento que reage sempre que o usuário altera o valor do controle deslizante. Para fazer isso, você usa o addChangeListener método. O parâmetro deve ser um objeto que implementa a ChangeListener interface, que define um único método chamado stateChanged.

Porque o ChangeListener interface tem apenas um método, que se qualifica como uma interface funcional e pode ser utilizado em uma expressão lambda. Na maioria dos casos, a maneira mais fácil de implementar um ouvinte de alteração é criar um método que contém o código que você quer executada quando as alterações de controle deslizante, em seguida, passá-lo através de uma expressão Lambda para o controle deslizante de addChangeListener método.

Aqui está um exemplo de um método que você pode chamar quando o estado de um controle deslizante é alterado:

public void sliderChanged () {if (slider.getValue () == 50) {JOptionPane.showMessageDialog (slider, "Não Não 50!", "A Máquina", JOptionPane.WARNING_MESSAGE) -}}

Para chamar esse método em resposta a uma alteração no estado do controle deslizante, chame o controle deslizante de addChangeListener um método com uma expressão Lambda:

slider.addChangeListener (e -> sliderChanged ()) -

Então o stateChanged método é chamado sempre que o usuário move o botão para outra posição. Ele verifica o valor do controle deslizante e exibe uma caixa de mensagem se o usuário tem avançado o controle deslizante todo o caminho para 50.

menu