[1] | 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 | } |
---|