【发布时间】:2014-08-06 21:51:40
【问题描述】:
我创建了一个带有 JScrollPane 的 JPanel,并尝试使用它滚动随机生成的颜色。随机生成的彩色方块的大小为 64px X 64px,覆盖面积为 100 X 100 个方块。所以很自然,我希望由于该区域远远超过 JPanel 的区域,滚动条会执行。但从下面的屏幕截图中,滚动条在没有滚动条选项卡的情况下无法正常工作。
(扩展 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);
}
【问题讨论】:
-
使用these之一
-
@Reimeus 我得到了相同的结果。代码已更新。
-
如何确定“this”的大小?鉴于您似乎正在使用 null 布局服务器,我建议您不了解组件大小的实际计算方式
-
@MadProgrammer 如果这是您的意思,我不会尝试滚动我的 JFrame,因为我的 jscrollpane/jpanel 独立于它,是的,框架布局为空。但是您是否建议我向我的 JFrame 添加一个布局,并可能添加一个内部布局?我更关心的是它如何影响某物的放置位置以及它是否保留了我想要的形状和位置。
-
_scrollPane = new JScrollPane(this);this(以及this是什么)的大小是如何确定的?
标签: java swing jpanel jscrollpane