JScrollBar là component và không tự xử lý sự kiện, trong khi JScrollPane là Container tự xử lý sự kiện và tự cuộn. JScrollBar không thể chứa JScrollPane ngược lại JScrollPane có thể chứa JScrollBar.
JScrollBar
- Object JScrollBar thêm scrollbar ngang và dọc cho user chọn giá trị giữa min và max.
- Lớp JScrollBar implement scrollbar và kế thừa JComponent.
Cú pháp
public class JScrollBar extends JComponent implements Adjustable, Accessible
Ví dụ
import javax.swing.*;
import java.awt.*;
public class JScrollBarTest extends JFrame {
JScrollBarTest() {
setTitle("JScrollBar Test");
JScrollBar jsb = new JScrollBar();
setLayout(new FlowLayout());
add(jsb);
setSize(350, 275);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new JScrollBarTest();
}
}
Kết quả

JScrollPane
- JScrollPane tạo view có cuộn cho component.
- Là object của JScrollPane kế thừa JComponent.
- Khi màn hình hạn chế, dùng scroll pane hiển thị component lớn hoặc size thay đổi động.
- Phương thức quan trọng: setColumnHeaderView(), setRowHeaderView(), setViewportView().
Ví dụ
import javax.swing.*;
import java.awt.*;
public class JScrollPaneTest extends JFrame {
JScrollPaneTest() {
setTitle("JScrollPane Test");
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JScrollPane jsp = new JScrollPane(panel,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
add(jsp);
setSize(350, 275);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JScrollPaneTest();
}
}
Kết quả
