我想创建一个有价值的酒吧。如果我移动圆圈,那么该字段中的值应该改变。我怎样才能做到这一点?
这是屏幕截图。我怎样才能做到这一点?
类似这样的东西也可以。请在这件事上给予我帮助。
先感谢您 :)
SpinSlider https://stackoverflow.com/questions/1969233/javaswingmvc-how-to-make-a-model-that-interfaces-w-multiple-controls/1970073#1970073可能是一个有用的例子。
附录:这是一个使用合适的格式字符串的示例JSpinner.NumberEditor
.
附录:您可以通过覆盖来更改滑块的颜色paintTrack()
, 如图所示here https://stackoverflow.com/questions/2898023/custom-java-swing-meter-control/2898259#2898259.
import java.awt.EventQueue;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/** @see https://stackoverflow.com/questions/6067898 */
public class SpinSlider extends JPanel {
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame("SpinSlider!");
f.add(new SpinSlider());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
});
}
public SpinSlider() {
this.setLayout(new FlowLayout());
final JSpinner spinner = new JSpinner();
final JSlider slider = new JSlider();
slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
JSlider s = (JSlider) e.getSource();
spinner.setValue(s.getValue());
}
});
this.add(slider);
spinner.setModel(new SpinnerNumberModel(50, 0, 100, 1));
spinner.setEditor(new JSpinner.NumberEditor(spinner, "0'%'"));
spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
JSpinner s = (JSpinner) e.getSource();
slider.setValue((Integer) s.getValue());
}
});
this.add(spinner);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)