之前一直用JScrollPane里面放一个JTextArea,就可以在文本框内实现滚动条。
但是最近做一个小demo,需要在JPanel中实现滚动条,就找了下资料,做好了,现在记录一下,防止以后再用到。
JFrame
|——JPanel
|——JScrollPane
|——JPanel
层级关系是JFrame里面添加JPanel①,JPanel①里面 添加JScrollPane(为了让滚动条展示出来,这里的size要稍微比JPanel①的size小一点),JScrollPane里面添加JPanel②。
具体代码如下:
public Test(){
JFrame jf = new JFrame();
jf.setBounds(200, 200, 500, 500);
jf.setVisible(true);
jf.setLayout(null);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel();
panel1.setBounds(0, 0, 500, 500);
panel1.setLayout(null);
panel1.setVisible(true);
JScrollPane jsp = new JScrollPane();
jsp.setBounds(0, 0, 350, 350);
JPanel panel2 = new JPanel();
panel2.setPreferredSize(new Dimension(600, 600));
panel2.setVisible(true);
jsp.getViewport().add(panel2);
jsp.validate();
panel1.add(jsp);
jf.add(panel1);
jf.setVisible(true);
}