【发布时间】:2012-03-04 11:44:13
【问题描述】:
我正在尝试创建一个屏幕,让我可以滚动到 JPanel 的不同区域。即我想要一个用于绘图的 JPanel,它的大小比它所在的 JFrame 更大,我正在尝试使用 JScrollPane 来查看 JPanel 的不同区域。
JFrame mainFrame = new JFrame("My Frame");
mainFrame.setSize(700, 700);
clickScreen = new ClickPanel();
clickScreen.setPreferredSize(new Dimension(2000, 2000));
JScrollPane scrollArea = new JScrollPane(clickScreen,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
mainFrame.getContentPane().add(scrollArea, BorderLayout.CENTER);
其中 ClickPanel 是我创建的一个类,它扩展了 JPanel 并用于绘图。
我的问题是:当我使用滚动条滚动时,视点会移动,但我的paintComponent 中的绘图显示在同一个地方。我希望能够滚动到它下面的新区域,以便我可以在那里绘制。
【问题讨论】:
-
尝试通过 panel.setSize(2000,2000); 设置大小
-
不要这样使用
setPreferredSize();另见Q&A。
标签: java swing user-interface jscrollpane