- 滑动面板(scrollpane)添加“内部”面板组件
scrollPane.setViewportView(pinner);
- 面板组件pinner 设置网格布局方式,设置
rows=0
表示无数行,pinner.add(xxx) 时直接在垂直方向上添加组件
public class TestScrollPane {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setBounds(100, 100, 550, 700);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel p = new JPanel();//parent panel
JPanel pinner = new JPanel();//inner panel
JScrollPane scrollPane = new JScrollPane();//滚动面板
p.setLayout(new BorderLayout());
p.add(scrollPane, BorderLayout.CENTER);//将 scrollpane 放在 parent-panel 的*
p.setBackground(new Color(255, 255, 0));
pinner.setLayout(new GridLayout(0, 1, 5, 5));//jpanel改变布局,使用网格布局,rows=1表示行数不限
for (int i = 0; i < 100; i++) {
pinner.add(new JLabel(String.valueOf(i)));
pinner.add(new JLabel(" msgxxxxxxxx"));
}
pinner.setBackground(new Color(0, 255, 255));
scrollPane.setViewportView(pinner);//将 inner panel 加入 滚动面板
frame.add(p);
frame.setVisible(true);
}
}