JSLider para duplas
-
24-09-2019 - |
Pergunta
Estou fazendo uma GUI (usando o swing) para uma estrutura de pôquer e preciso de algum tipo de controle deslizante para permitir que os jogadores selecionem um tamanho de aposta. No entanto, o balanço JSlider
Funciona apenas com valores int, enquanto eu preciso de algo que possa suportar duplas para 1 ponto decimal. Existem bibliotecas que eu posso usar ou truques com o JSlider
?
Solução
Você pode multiplicar o valor por 10
EDITAR
Você pode alterar os rótulos exibidos da seguinte forma:
Hashtable labelTable = new Hashtable();
labelTable.put( new Integer( 0 ), new JLabel("0.0") );
labelTable.put( new Integer( 5 ), new JLabel("0.5") );
labelTable.put( new Integer( 10 ), new JLabel("1.0") );
framesPerSecond.setLabelTable( labelTable );
Outras dicas
Um truque Você pode usar com o JSLider é usar as unidades em centavos. Portanto, se você deseja que o usuário selecione um valor entre 1 e 10 dólares, você realmente define o JSLider para o intervalo de 100 a 1000. Em seguida, basta converter o valor em dólares e centavos quando o usuário selecionar um valor.
Você pode usar um dicionário de valores para especificar qual rótulo é exibido em qualquer valor no controle deslizante. Use o setLabelTable()
método para isso.