在test()构造函数中初始化slider1变量后,添加这些行,以便可以在GUI中设置和显示jslider tick值:
slider1.setMajorTickSpacing( 5 );
slider1.setPaintLabels( true );
您可以自己更改刻度线间距,设置为5.使用add()方法添加滑块不是一个好习惯,请使用getContentPane().add(),因此您的构造函数应如下所示:
public test2()
{
slider1 = new JSlider(JSlider.VERTICAL, 0, 50, 0);
setLayout(new FlowLayout(FlowLayout.TRAILING));
slider1.setMajorTickSpacing( 5 );
slider1.setPaintLabels( true );
this.getContentPane().add(slider1);
}
我注意到你没有在main()方法中调用changeValue()方法.正如您的方法名称所暗示的那样,它似乎是一个setter,但是您没有参数化地给出设置值,这是一个好习惯吗?在我看来,事实并非如此.并且changeValue()与setValue()做同样的事情,为什么要创建冗余方法?无论如何,你可以使用这个:
public void changeValue (int newValue)
{
slider1.setValue(newValue);
}
在main方法中,使用以下语句:
test2 gui = new test2();
gui.changeValue( 25 );
要查看更改滑块值的直接影响,我的意思是更新它,使用按钮或其他组件,向其添加ActionListener,以便您可以在单击时更新滑块值.
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
changeValue( 25 ); // change 25 to desired value.
}
});