public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(300, 300));
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea textArea = new JTextArea();
/*
* установи какой-нибудь текст или вбей прямо в окне
*/
// textArea.setText();
/*
* использование следующих 2 методов
* отключает горизонтальный скроллинг компонента
* тем самым пролистываение возможно только вертикально
*/
textArea.setLineWrap(true); //перенос только по символам символам
textArea.setWrapStyleWord(true); //перенос по словам и символам (если слово не влезает по ширине окна)
JScrollPane scrollPane_TextArea = new JScrollPane(textArea);
/**
* просто тестовый размер
*/
scrollPane_TextArea.setPreferredSize(new Dimension(200, 200));
/*
* если вертикальный скрол не нужен то раскоментируй
*/
// scrollPane_TextArea.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
JButton button_PrevPage = new JButton("PrevPage");
JButton button_NextPage = new JButton("NextPage");
button_PrevPage.setActionCommand("prev");
button_NextPage.setActionCommand("next");
class ChangePageListeners implements ActionListener{
JScrollPane scrollPane;
public ChangePageListeners(JScrollPane scrollPane) {
this.scrollPane = scrollPane;
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
switch (command) {
case "prev":
changePage(false);
break;
case "next":
changePage(true);
break;
default:
break;
}
}
private void changePage(boolean next){
if(next == true){
int heigthPage = scrollPane.getHeight();
int currentPosition = scrollPane.getVerticalScrollBar().getValue();
scrollPane.getVerticalScrollBar().setValue(currentPosition + heigthPage);
}
else{
int heigthPage = scrollPane.getHeight();
int currentPosition = scrollPane.getVerticalScrollBar().getValue();
scrollPane.getVerticalScrollBar().setValue(currentPosition - heigthPage);
}
}
}
ChangePageListeners changePageListeners = new ChangePageListeners(scrollPane_TextArea);
/*
* устанавливаем на кнопки слушатели
*/
button_NextPage.addActionListener(changePageListeners);
button_PrevPage.addActionListener(changePageListeners);
JPanel panel = new JPanel();
panel.add(scrollPane_TextArea);
panel.add(button_NextPage);
panel.add(button_PrevPage);
frame.add(panel);
frame.setVisible(true);
}