JPanel滚动标签不会出现

时间:2014-08-06 21:51:41

标签: java swing jpanel jscrollpane

我创建了一个带有JScrollPane的JPanel,并尝试使用它滚动浏览随机生成的颜色。随机生成的彩色方块的大小为64px×64px,覆盖100×100个方格的区域。很自然地,我希望由于该区域远远超过JPanel的区域,滚动条将会执行。但是从下面的屏幕截图中,滚动条无法正常工作,没有滚动条标签。

enter image description here

(扩展JPanel)

private void createCanvasWindow()
{
    this.setLayout(new BorderLayout());

    _scrollPane = new JScrollPane(this);
    _scrollPane.setViewportView(this);
    _scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    _scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    _scrollPane.setBounds(10, 10, WIDTH, HEIGHT);

    _gen = new JButton("Gen");
    _gen.addActionListener(this);
    _gen.setBounds(16 + WIDTH, 10 + HEIGHT, 80, 32);
    _gen.setVisible(true);

    _frame.getContentPane().add(_gen);
    _frame.getContentPane().add(_scrollPane, BorderLayout.CENTER);
}

1 个答案:

答案 0 :(得分:2)

  

_scrollPane = new JScrollPane(this);

您添加到滚动窗格的任何组件都将控制滚动条。添加到滚动窗格的组件的首选大小大于滚动窗格的大小时,将显示滚动条。无论如何"这个"组件需要覆盖getPreferredSize()方法以返回组件的大小,因为我可以告诉您正在进行自定义绘制,每个组件都负责确定自己的首选大小。