首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于可滚动JPanel的paintComponent

基于可滚动JPanel的paintComponent
EN

Stack Overflow用户
提问于 2014-08-07 21:07:00
回答 1查看 1.1K关注 0票数 0

我使用java-2d来可视化我的应用程序。我创建了带有扩展JPanel的面板来绘制一个简单的矩形。我把这个命名为MyPanel

因此,矩形定义会动态地改变面板的宽度和高度。我使用JScrollPane向我的面板添加滚动功能,如下所示:

代码语言:javascript
复制
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

我使用下面的代码将面板添加到窗口:

代码语言:javascript
复制
JFrame frame = new JFrame();
frame.setLayout(new GridLayout(1,1));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setResizable(false);

MyPanel panel = new MyPanel();

JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

frame.add(scrollPane);
frame.setVisible(true);

现在,在paintComponents of MyPanel中,我希望用大于容器(帧)宽度和高度的宽度和高度来绘制矩形。但卷轴不起作用。

怎么啦?有人能帮我吗?

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-07 21:16:04

滚动窗格使用组件首选大小来确定其大小,并在组件大小大于滚动窗格的大小时提供滚动。

尝试重写自定义组件的getPreferredSize方法并返回所需的大小

如果MyPanel的大小在程序运行时发生变化,请使用对Dimension的引用(由getPreferredSize返回),并在更改它时调用revalidate

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25192205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档