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>

油漆示例 Paint Example

解决方法

我找到了一种方法,如果其他人需要您需要在 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);

感谢您的帮助