首页 > 解决方案 > Java JPanel 比带有滚动功能的 JFrame 大

问题描述

我正在尝试创建一个屏幕大小的 JPanel(它可能比 JFrame 大)但我希望 JFrame 可以调整大小。是否可以通过滚动 (JScrollPane) 看到 JPanel 的隐藏部分(JFrame 之外的部分)?

这是我的第一个 Java 项目,所以请解释你的答案

html 中的示例

<html>
<body> <!-- This is the JFrame -->
  <div style="width: 120%; height: 200%;"> <!-- This is the JPanel -->

  </div>
</body>
</html>

油漆示例 油漆示例

标签: javaswingjframejpaneljscrollpane

解决方案


我找到了一种方法来做到这一点,如果其他人需要你需要在 JPanel 中 @Override getPreferredSize 并且不要将 JPanel 添加到 JFrame 使用 JPanel 创建 JScrollPane 并将 JScrollPane 添加到 JFrame (我认为我的问题是我添加了JPanel 两次)

示例——在扩展的 JFrame 类中

JPanel panel = new JPanel();
panel.setPreferredSize(**SIZE**); // not tested I use @Override on the getPreferredSize - idea from camickr
JScrollPane scroll = new JScrollPane(panel, 
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

this.add(scroll);

谢谢您的帮助


推荐阅读