1 | package genius.gui.uncertainty;
|
---|
2 |
|
---|
3 | import java.awt.BorderLayout;
|
---|
4 | import java.awt.Dimension;
|
---|
5 | import java.util.Hashtable;
|
---|
6 |
|
---|
7 | import javax.swing.JLabel;
|
---|
8 | import javax.swing.JPanel;
|
---|
9 | import javax.swing.JSlider;
|
---|
10 | import javax.swing.event.ChangeEvent;
|
---|
11 | import javax.swing.event.ChangeListener;
|
---|
12 |
|
---|
13 | import genius.gui.panels.LabelAndComponent;
|
---|
14 |
|
---|
15 | public class PerturbationPanel extends JPanel{
|
---|
16 |
|
---|
17 | private PerturbationModel model;
|
---|
18 | private LabelAndComponent panel;
|
---|
19 | private JSlider slider;
|
---|
20 | private JLabel perturbationLabel = new JLabel("0");
|
---|
21 |
|
---|
22 |
|
---|
23 | public PerturbationPanel(PerturbationModel model) {
|
---|
24 | this.model = model;
|
---|
25 | setLayout(new BorderLayout());
|
---|
26 | slider = createSlider();
|
---|
27 | LabelAndComponent sliderPanel = new LabelAndComponent("Set Perturbation", slider);
|
---|
28 | JPanel centerPanel = new JPanel();
|
---|
29 | centerPanel.add(sliderPanel,BorderLayout.CENTER);
|
---|
30 | centerPanel.add(perturbationLabel,BorderLayout.EAST);
|
---|
31 | add(centerPanel,BorderLayout.CENTER);
|
---|
32 | this.setVisible(true);
|
---|
33 | }
|
---|
34 |
|
---|
35 | private JSlider createSlider() {
|
---|
36 | slider = new JSlider(JSlider.HORIZONTAL,0,100,1);
|
---|
37 | slider.setMajorTickSpacing( 1 );
|
---|
38 | slider.setMinorTickSpacing( 2 );
|
---|
39 | Hashtable<Integer, JLabel> sliderLabelsTable = new Hashtable<Integer, JLabel>();
|
---|
40 | sliderLabelsTable.put( 0 , new JLabel("0") );
|
---|
41 | sliderLabelsTable.put( 2 , new JLabel("0.2") );
|
---|
42 | sliderLabelsTable.put( 4 , new JLabel("0.4") );
|
---|
43 | sliderLabelsTable.put( 6 , new JLabel("0.6") );
|
---|
44 | sliderLabelsTable.put( 8 , new JLabel("0.8") );
|
---|
45 | sliderLabelsTable.put( 10 , new JLabel("1") );
|
---|
46 | slider.setPreferredSize(new Dimension(200, 200));
|
---|
47 |
|
---|
48 | slider.addChangeListener(new ChangeListener() {
|
---|
49 | @Override
|
---|
50 | public void stateChanged(ChangeEvent e) {
|
---|
51 | perturbationLabel.setText(String.valueOf((double) slider.getValue() / 100));
|
---|
52 | model.getPerturbationBox().setText(perturbationLabel.getText());
|
---|
53 | }
|
---|
54 | });
|
---|
55 | return slider;
|
---|
56 | }
|
---|
57 |
|
---|
58 | public LabelAndComponent getPanel() {
|
---|
59 | return panel;
|
---|
60 | }
|
---|
61 |
|
---|
62 | public JSlider getSlider() {
|
---|
63 | return slider;
|
---|
64 | }
|
---|
65 |
|
---|
66 |
|
---|
67 |
|
---|
68 | } |
---|