2017-01-08 4 views
0

У меня есть панель jScrollbar, и когда я прокручиваю ее (она имеет значения от 0 до 100), я хочу отобразить значение в текстовом поле. Это, как получить значение из JScrollBarУстановить входное значение значение JScrollBar

AdjustmentListener adjListener; 
adjListener = new AdjustmentListener() { 
    public void adjustmentValueChanged(AdjustmentEvent evt) { 
     System.out.println(evt.getValue()); 
    } 
}; 

Но я не могу поставить его на входе, как я получаю cannot make static reference to non-static ошибку.

Любая помощь будет оценена!

ответ

1

У вас есть выбор между использованием переменных в области или атрибутах класса.

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(); 
    } 
} 
+0

Большое спасибо! –

+0

Добро пожаловать! ;-) – Aubin