gpt4 book ai didi

java - 使用java的具有值(value)的可移动条

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:03 25 4
gpt4 key购买 nike

我想创建一个带有值的栏。如果我移动圆圈,那么字段中的值应该改变。我怎样才能做到这一点?这是屏幕截图。我怎样才能做到这一点?

类似这样的也可以。请帮我解决一下这个。提前谢谢你:)

enter image description here

最佳答案

SpinSlider可能是一个有用的例子。

附录:这是一个为 JSpinner.NumberEditor 使用合适的格式字符串的示例。

附录:您可以通过覆盖paintTrack() 来更改 slider 的颜色,如图所示here .

SpinSlider image

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);
}
}

关于java - 使用java的具有值(value)的可移动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com