之前一直用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);
	}