JPanelをスクロールする

JTextAreaやJTableをJScrollPaneで
スクロールさせるサンプルはよく見かけのですが
JPanelにJScrollPaneで画面をスクロールさせる方法は
見つからなかったので自分で作ってみました。


package jp.co.sakahara;

import javax.swing.*;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Color;

public class AddPanelToScroll extends JFrame {

private JPanel jContentPane = null;

private JPanel panel01 = null;

private JScrollPane scroll = null;

private JTextField jTextField01 = null;

/**
* This is the default constructor
*/
public AddPanelToScroll() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(450, 250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setContentPane(getJContentPane());
this.setTitle("JScrollPane Test!!");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getScroll());
}
return jContentPane;
}

/**
* This method initializes jPanel01
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel01() {
if (panel01 == null) {
panel01 = new JPanel();
panel01.setLayout(null);
panel01.setBorder(BorderFactory.createLineBorder(Color.gray, 1));
panel01.setBackground(Color.lightGray);
panel01.setPreferredSize(new Dimension(200, 200));
panel01.add(getJTextField01(), null);
}
return panel01;
}

/**
* This method initializes scroll
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getScroll() {
if (scroll == null) {
scroll = new JScrollPane();
scroll.setBounds(50, 50, 330, 130);
scroll.setViewportView(getJPanel01());
}
return scroll;
}

/**
* This method initializes jTextField01
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField01() {
if (jTextField01 == null) {
jTextField01 = new JTextField();
jTextField01.setBounds(new Rectangle(40, 20, 230, 100));
}
return jTextField01;
}

/**
* mainメソッド
*
* @param args
*/
public static void main(String[] args) {

AddPanelToScroll test = new AddPanelToScroll();
test.setVisible(true);
}
}