KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > rero > dck > items > FloatInput


1 package rero.dck.items;
2
3 import java.awt.*;
4 import java.awt.event.*;
5
6 import javax.swing.*;
7 import javax.swing.event.*;
8
9 import rero.config.*;
10 import rero.dck.*;
11
12 public class FloatInput extends SuperInput implements ChangeListener
13 {
14    protected JLabel label;
15    protected JTextField text;
16    protected JSlider slider;
17
18    protected float value;
19
20    public FloatInput(String JavaDoc var, float _value, String JavaDoc _label)
21    {
22       variable = var;
23       value = _value;
24
25       setLayout(new BorderLayout(5, 5));
26
27       label = new JLabel(_label);
28        
29       add(label, BorderLayout.WEST);
30
31       int defValue = (int)(_value * 100);
32
33       slider = new JSlider(JSlider.HORIZONTAL, 0, 100, defValue);
34       slider.setMajorTickSpacing(25);
35       slider.setMinorTickSpacing(5);
36       slider.setPaintTicks(true);
37       slider.setPaintLabels(false);
38
39       slider.addChangeListener(this);
40
41       add(slider, BorderLayout.CENTER);
42        
43       text = new JTextField();
44       text.setEditable(false);
45       text.setColumns(4);
46
47       refresh();
48
49       JPanel temp = new JPanel();
50       temp.setLayout(new FlowLayout(FlowLayout.CENTER));
51
52       temp.add(text);
53
54       add(temp, BorderLayout.EAST);
55    }
56
57    public void stateChanged(ChangeEvent ev)
58    {
59       if (slider.getValue() == 0)
60       {
61          text.setText("off");
62       }
63       else
64       {
65          text.setText(slider.getValue()+"%");
66       }
67       notifyParent();
68    }
69
70    public void save()
71    {
72       ClientState.getClientState().setFloat(getVariable(), (float)slider.getValue() / 100f);
73    }
74
75    public int getEstimatedWidth()
76    {
77       return (int)label.getPreferredSize().getWidth();
78    }
79
80    public void setAlignWidth(int width)
81    {
82       label.setPreferredSize(new Dimension(width, 0));
83       revalidate();
84    }
85
86    public JComponent getComponent()
87    {
88       return this;
89    }
90
91    public void refresh()
92    {
93       int defValue = (int)(ClientState.getClientState().getFloat(getVariable(), value) * 100);
94       slider.setValue(defValue);
95
96       if (defValue == 0)
97       {
98          text.setText("off");
99          return;
100       }
101
102       text.setText(defValue + "%");
103    }
104 }
105
106
107
Popular Tags