Как реализовать полосу прокрутки? - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, изучаю SWING и хотел для календаря реализовать вот такую не хитрую полосу прокрутки, но из компонентов пока не нашел ничего подходящего, может кто предложить какой-нибудь вариант?) Пример прикрепил ниже) Заранее благодарю за помощь.

Решение задачи: «Как реализовать полосу прокрутки?»

textual
Листинг программы
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;
 
public class MonthYearSpinnerTest {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MonthYearSpinnerTest().makeUI();
            }
        });
    }
 
    public void makeUI() {
        JSpinner spinner = new JSpinner(new SpinnerDateModel());
        JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "MMMM yyyy");
        editor.getTextField().setEditable(false);
        spinner.setEditor(editor);
        spinner.setUI(new LRSpinnerUI());
 
        JFrame frame = new JFrame();
        frame.add(spinner);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
 
class LRSpinnerUI extends BasicSpinnerUI {
    public void installUI(JComponent component) {
        super.installUI(component);
        component.removeAll();
        component.setLayout(new BorderLayout());
 
        JButton nextButton = new BasicArrowButton(SwingConstants.EAST);
        installNextButtonListeners(nextButton);
        component.add(nextButton, BorderLayout.EAST);
 
        JButton previousButton = new BasicArrowButton(SwingConstants.WEST);
        installPreviousButtonListeners(previousButton);
        component.add(previousButton, BorderLayout.WEST);
 
        component.add(createEditor(), BorderLayout.CENTER);
    }
}

Оцени полезность:

9   голосов , оценка 3.556 из 5