Advertisement
Guest User

Untitled

a guest
May 27th, 2017
149
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.Graphics;
  5. import java.awt.KeyEventDispatcher;
  6. import java.awt.KeyboardFocusManager;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.KeyEvent;
  10. import java.awt.image.BufferedImage;
  11. import java.util.Dictionary;
  12. import java.util.Hashtable;
  13.  
  14. import javax.swing.ImageIcon;
  15. import javax.swing.JButton;
  16. import javax.swing.JComponent;
  17. import javax.swing.JFrame;
  18. import javax.swing.JLabel;
  19. import javax.swing.JOptionPane;
  20. import javax.swing.JPanel;
  21. import javax.swing.JSlider;
  22. import javax.swing.JTextField;
  23. import javax.swing.SwingUtilities;
  24.  
  25. public class Slider extends JFrame {
  26.  
  27.     public static final Color[] COLORS = {Color.red, Color.orange, Color.yellow, Color.green, Color.blue};
  28.     public static final String[] valuesColor = {"10", "20","30","40","50"};
  29.     private static final int COMPRIMENTO = 30;
  30.     private static final int ALTURA = 10;
  31.  
  32.     private JSlider slider = new JSlider(0, 100, 0);
  33.     public JTextField campo = new JTextField();
  34.  
  35.     private double valor;
  36.  
  37.     public Slider() {
  38.         setSize(525, 300);
  39.         add(montaSlider());
  40.         setLocationRelativeTo(null);
  41.         setVisible(true);
  42.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  43.     }
  44.  
  45.     private JComponent montaSlider() {
  46.         JPanel jpSlider = new JPanel();
  47.  
  48.         jpSlider.add(campo);
  49.         campo.setPreferredSize(new Dimension(100, 20));
  50.  
  51.         campo.addActionListener(new ActionListener()//Caixa consulta é o campo que é digitado o código.
  52.         {
  53.             @Override
  54.             public void actionPerformed(ActionEvent e) {
  55.                 KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
  56.                     @Override
  57.                     public boolean dispatchKeyEvent(KeyEvent e) {
  58.                         if (e.getID() == KeyEvent.KEY_RELEASED && e.getKeyCode() == KeyEvent.VK_ENTER) {
  59.                             //definePonteiro();
  60.                         } else {
  61.  
  62.                         }
  63.                         return false;
  64.                     }
  65.                 });
  66.             }
  67.         });
  68.  
  69.         int majorSpacing = slider.getMaximum() / (COLORS.length - 1);
  70.         Dictionary<Integer, JLabel> dictionary = new Hashtable<>();
  71.         slider.setMajorTickSpacing(majorSpacing);
  72.         slider.setPaintLabels(true);
  73.         slider.setPaintTicks(true);
  74.         slider.setSnapToTicks(true);
  75.         for (int i = 0; i < COLORS.length; i++) {
  76.             ImageIcon icon = createColorIcon(COLORS[i]);
  77.             JLabel label = new JLabel(icon);
  78.             label.setText(valuesColor[i]);
  79.             label.setForeground(Color.white);
  80.             label.setHorizontalTextPosition(JLabel.CENTER);
  81.             int key = i * majorSpacing;
  82.             dictionary.put(key, label);
  83.         }
  84.         slider.setLabelTable(dictionary);    
  85.         jpSlider.add(slider, BorderLayout.CENTER);
  86.         JButton btn = new JButton("change");
  87.         btn.addActionListener(e -> {
  88.             String value = JOptionPane.showInputDialog("Digite um valor:");
  89.            
  90.             definePonteiro(Double.parseDouble(value));
  91.         });
  92.         jpSlider.add(btn, BorderLayout.SOUTH);
  93.         return jpSlider;
  94.     }
  95.  
  96.     private ImageIcon createColorIcon(Color color) {
  97.         BufferedImage img = new BufferedImage(COMPRIMENTO, ALTURA, BufferedImage.TYPE_INT_RGB);
  98.         Graphics g = img.getGraphics();
  99.         g.setColor(color);
  100.         g.fillRect(0, 0, COMPRIMENTO, ALTURA);
  101.         g.dispose();
  102.         return new ImageIcon(img);
  103.     }
  104.  
  105.     public static void main(String[] args) {
  106.         SwingUtilities.invokeLater(new Runnable() {
  107.             @Override
  108.             public void run() {
  109.                 Slider s = new Slider();
  110.             }
  111.         });
  112.     }
  113.  
  114.         public void definePonteiro(double valor) {
  115.            
  116.             //valor = Double.valueOf(campo.getText());
  117.             //variavel que armazenará a posicao do knob
  118.             int sliderPos = 0;
  119.            
  120.             if (valor <= 11.5) {          
  121.                 sliderPos = 0;
  122.             } else if (valor <= 20) {
  123.                 sliderPos = 25;
  124.             } else if (valor <= 30) {
  125.                 sliderPos = 50;
  126.             } else if (valor <= 40) {
  127.                 sliderPos = 75;
  128.             } else if (valor <= 50) {
  129.                 sliderPos = 100;
  130.             }
  131.             slider.setValue(sliderPos);
  132.         }
  133. }
Advertisement
RAW Paste Data Copied
Advertisement