diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-25 22:11:28 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-25 22:11:28 -0400 |
| commit | fb7d03388e298258563c22abda1bd46cdaf991b7 (patch) | |
| tree | ff2caeda751acd733ea00c089800ff380211f0b3 /BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java | |
| parent | 42f7d379a430aaf2fad169f0170de04072b08b10 (diff) | |
General code cleanup, and some more GUI controls
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java new file mode 100644 index 0000000..4cbfb61 --- /dev/null +++ b/BJC-Utils2/src/main/java/bjc/utils/gui/HolderOutputPanel.java @@ -0,0 +1,60 @@ +package bjc.utils.gui; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.Timer; + +import bjc.utils.data.IHolder; +import bjc.utils.gui.layout.HLayout; + +/** + * A panel that outputs a value bound to a {@link IHolder} + * + * @author ben + * + */ +public class HolderOutputPanel extends JPanel { + private static final long serialVersionUID = 166573313903782080L; + private Timer updateTimer; + private JLabel value; + + /** + * Create a new display panel, backed by a holder + * + * @param lab + * The label to attach to this field + * @param val + * The holder to get the value from + * @param nDelay + * The delay in ms between value updates + */ + public HolderOutputPanel(String lab, IHolder<String> val, int nDelay) { + setLayout(new HLayout(2)); + + JLabel label = new JLabel(lab); + value = new JLabel(val.getValue() + " (stopped)"); + + updateTimer = new Timer(nDelay, (event) -> { + value.setText(val.getValue()); + }); + + add(label); + add(value); + } + + /** + * Start updating the contents of the field from the holder + */ + public void startUpdating() { + updateTimer.start(); + } + + /** + * Stop updating the contents of the field from the holder + */ + public void stopUpdating() { + updateTimer.stop(); + + value.setText(value.getText() + " (stopped)"); + } +} |
