its may be you expected. but don't use null layout. JScrollPane not work with null layout.
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class ScrollLabel extends JFrame {
public ScrollLabel() throws Exception {
setSize(300, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel(new GridLayout());
pane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
label = new JLabel();
ImageIcon icon = new ImageIcon(ImageIO.read(new File(getClass().getResource("baby.jpg").toURI())));
label.setIcon(icon);
panel.add(label);
add(pane);
repaint();
}
public static void main(String[] args) throws Exception {
new ScrollLabel();
}
JPanel panel;
JLabel label;
JScrollPane pane;
}