Java 将输入值设置为JScrollBar的值
我有一个jScrollbar,当我滚动它时(它的值从0到100),我想在文本字段中显示该值。 这是如何从jScrollBar中获取值Java 将输入值设置为JScrollBar的值,java,swing,awt,jscrollbar,Java,Swing,Awt,Jscrollbar,我有一个jScrollbar,当我滚动它时(它的值从0到100),我想在文本字段中显示该值。 这是如何从jScrollBar中获取值 AdjustmentListener adjListener; adjListener = new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent evt) { System.out.println(evt.getValue());
AdjustmentListener adjListener;
adjListener = new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent evt) {
System.out.println(evt.getValue());
}
};
但我无法将其放入输入,因为我得到无法对非静态错误进行静态引用
任何帮助都将不胜感激 您可以选择在范围或类属性中使用变量
public class Main extends JFrame {
// Attibute version
// private final JTextField textfield = new JTextField( "0000" );
Main() {
super( "Hello, scrollbars!" );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setLayout( new BoxLayout( getContentPane(), BoxLayout.Y_AXIS ));
// this variable may be defined as attribute
final JTextField textfield = new JTextField( "0000" );
add( textfield );
final JScrollPane scrollPane =
new JScrollPane(
new JList<>(
new String[]{
"Hello", "Scrollbars",
"Hello", "Scrollbars",
"Hello", "Scrollbars",
"Hello", "Scrollbars",
"Hello", "Scrollbars",
}));
scrollPane.getVerticalScrollBar().addAdjustmentListener(
e -> textfield.setText( String.format( "%04d", e.getValue())));
add( scrollPane );
pack();
setLocationRelativeTo( null );
setVisible( true );
}
public static void main( String[] args ) {
new Main();
}
}
public类主框架{
//阿提布特版本
//私有最终JTextField textfield=新JTextField(“0000”);
Main(){
超级(“你好,滚动条!”);
setDefaultCloseOperation(关闭时退出);
setLayout(新的BoxLayout(getContentPane(),BoxLayout.Y_轴));
//此变量可以定义为属性
最终JTextField textfield=新JTextField(“0000”);
添加(文本字段);
最终JScrollPane滚动窗格=
新JScrollPane(
新JList(
新字符串[]{
“你好”,“滚动条”,
“你好”,“滚动条”,
“你好”,“滚动条”,
“你好”,“滚动条”,
“你好”,“滚动条”,
}));
scrollPane.getVerticalScrollBar().addAdjustmentListener(
e->textfield.setText(String.format(“%04d”,e.getValue());
添加(滚动窗格);
包装();
setLocationRelativeTo(空);
setVisible(真);
}
公共静态void main(字符串[]args){
新的Main();
}
}