我正在尝试将 JScrollPane 从单独的类添加到 JPanel。并且感谢到目前为止提出的一些问题,我可以帮助自己创建它们。但我的问题还是有点特别。我想在 JPanel 上显示图像,如果图像对于面板来说太大,我想添加滚动条。但是滚动条不会出现。(当我设置ScrollPaneConstants到****_SCROLLBAR_ALWAYS框架的栏出现,但没有栏滚动)。
我想我必须将图像大小与条形连接,以便它们出现?
我的一些代码:
主窗口
public class Deconvolutioner extends JFrame
{
Draw z;
Picturearea picturearea;
class Draw extends JPanel
{
    public void paint(Graphics g)
    {
    }
}
public Deconvolutioner()
{
    setTitle("Deconvolutioner");
    setLocation(30,1);
    setSize(1300,730);
    super.setFont(new Font("Arial",Font.BOLD,11));
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    FlowLayout flow = new FlowLayout(FlowLayout.CENTER);
    this.setLayout(flow);
    picturearea = new Picturearea();
    picturearea.setLayout(new GridBagLayout());
    JScrollPane scrollPane = new JScrollPane(picturearea, 
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, 
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    scrollPane.setPreferredSize(new Dimension(1000, 664));
    getContentPane().add(scrollPane, flow); // add scrollpane to frame
    add(z = new Draw());
    setVisible(true);
}
}
JPanel 类
public class Picturearea extends JPanel
{
BufferedImage image;
int panelWidth, panelHeight, imageWidth, imageHeight;
public Picturearea()
{
    setBackground(new Color(210,210,210));
    setBorder(LineBorder.createBlackLineBorder());
    setVisible(true);
}
@Override
public void paintComponent(Graphics g) 
{
    super.paintComponent(g);
    g.drawImage(image, 0, 0, this);
}
public void setPicture(BufferedImage picture)
{
    try 
    {                
        image = picture;
    } 
    catch (Exception e) 
    {
        System.err.println("Some IOException accured (did you set the right path?): ");
        System.err.println(e.getMessage());
    }
    repaint();
}
}
谢谢你的时间。