我想創建一個帶有值的鋼筋。如果我移動該圓圈,那麼該字段中的值應該改變。我怎樣才能做到這一點? 這是屏幕截圖。我怎樣才能做到這一點?使用java的可移動鋼筋值
類似的東西也可以。請幫我解決一下這個。 預先感謝您:)
我想創建一個帶有值的鋼筋。如果我移動該圓圈,那麼該字段中的值應該改變。我怎樣才能做到這一點? 這是屏幕截圖。我怎樣才能做到這一點?使用java的可移動鋼筋值
類似的東西也可以。請幫我解決一下這個。 預先感謝您:)
SpinSlider
可能是一個有用的例子。
附錄:下面是使用合適的格式字符串JSpinner.NumberEditor
的示例。
附錄:您可以通過覆蓋paintTrack()
來更改滑塊的顏色,如here所示。
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);
}
}
要創建一個酒吧,一個值(滑塊),您可以使用JSlider
類。當你創建這個類的實例時,你可以指定所有的參數,如min。和最大。值,步長等。
您可以將ChangeListener
添加到滑塊。這個Changelistener
應該實現方法stateChanged()
,並且在這種方法中,您可以根據滑塊的位置更改文本框中顯示的值。
JSlider slider= new JSlider(JSlider.HORIZONTAL,0,100,50); //min value 0, max value 100, initial value 50
slider.addChangeListener(this)
JTextFox text = new JTextFox("50");
//Some other code, adding the the slider, text box (and other stuff) to the application
//...
public void stateChanged(ChangeEvent e)
{
JSlider source = (JSlider)e.getSource();
int value = (int)source.getValue();
text.setText(Integer.toString(value));
}
@SRIKANTH KV:我看到你的後續問題和解決上述問題。 – trashgod 2011-05-24 01:58:40
+1像往常一樣非常好 – 2013-07-10 10:13:54