Как реализовать полосу прокрутки? - 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); } }