1
我有一個JSlider和3個jtextfields的簡單面板。 我使用的構造JSlider的構建JSlider的(INT分鐘,INT最大,int值) 這樣的:JSlider拋出非法參數異常:無效範圍屬性
public class Slide extends JFrame{
JSlider slider=new JSlider(100,200,50);//here lies the problem
JTextField maxVal=new JTextField(10);
JTextField minVal=new JTextField(10);
JTextField curVal=new JTextField(10);
public Slide(){
JPanel panel=new JPanel();
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent arg0) {
minVal.setText(slider.getMinimum()+"");
maxVal.setText(slider.getMaximum()+"");
curVal.setText(slider.getValue()+"");
}
});
panel.setLayout(new MigLayout("", "[][][][]", "[][][][]"));
panel.add(slider, "cell 0 0,alignx left,aligny top");
JLabel label = new JLabel("Min val");
panel.add(label,"cell 0 2");
panel.add(minVal, "cell 3 2");
this.setContentPane(panel);
JLabel label_1 = new JLabel("Max val:");
panel.add(maxVal,"cell 3 3");
panel.add(label_1, "cell 0 3");
panel.add(new JLabel("Cur value:"), "cell 0 4");
panel.add((curVal),"cell 3 4");
this.setSize(400, 400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String args[]){
new Slide();
}
}
的問題是,當我嘗試運行這個程序,我得到一個非法參數異常,但如果我刪除了第三個參數,一切正常。
Exception in thread "main" java.lang.IllegalArgumentException: invalid range properties
at javax.swing.DefaultBoundedRangeModel.<init>(DefaultBoundedRangeModel.java:102)
at javax.swing.JSlider.<init>(JSlider.java:274)
at javax.swing.JSlider.<init>(JSlider.java:241)
at JSlider.Slide.<init>(Slide.java:20)
at JSlider.Slide.main(Slide.java:54)
Java Result: 1
任何想法爲什麼會發生這種情況?
有關構造函數[JSlider(int min,int max,int value)](https://docs.oracle.com/javase/7/docs/api/javax/swing/JSlider.html)的API會話,值被聲明爲100,最大值約爲200,初始值必須等於或等於100,但是在50 – mKorbel