请帮忙,JPanel 使用 setLocation 滚动



我已经尝试了几个小时来获得一个简单的滚动面板。 假设我正在尝试在面板上显示一个大图像(太大而无法一次看到所有图像),因此希望能够使用 setLocation() 移动显示此图像的面板,该方法由我们调用 scroll() 的某种方法提示。我知道滚动面板需要鼠标移动侧面的条,但我不希望这样。 我希望它根据键盘输入/方法调用移动。 我该如何解决这个问题?这是我正在做的事情的基本版本:

Frame f = new JFrame();
Panel p = new JPanel();
f.setSize(2000,2000);
p.setLocation(X, Y);
f.getContentPane().add( mainPanel);
f.repaint();

这将在同一位置显示 JPanel,无论 X 和 Y 是什么。 如果我将布局设置为 null,它根本不显示。请帮助我

阅读 JScrollPane 和 JViewport API。调用 setLocation 应该对你没有任何用处。相反,您必须更改视口正在查看的内容。

例如,视口的setViewPosition(...)可以工作。空布局几乎总是永远不是答案。

最新更新