gpt4 book ai didi

java - 基于其paintComponent的可滚动JPanel

转载 作者:行者123 更新时间:2023-12-01 22:47:01 27 4
gpt4 key购买 nike

我正在使用 java-2d 来可视化我的应用程序。我已经创建了扩展 JPanel 的面板来绘制一个简单的矩形。我将此命名为 MyPanel

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

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

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

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);

现在,在 MyPanel 的 paintComponents 中,我想绘制宽度和高度大于容器(框架)宽度和高度的矩形。但卷轴不起作用。

出了什么问题?有人可以帮助我吗?

提前致谢:)

最佳答案

滚动 Pane 使用组件的首选大小来确定它应该有多大,并在组件大小大于滚动 Pane 的大小时提供滚动...

尝试重写自定义组件的 getPreferredSize 方法并返回您想要的大小

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

关于java - 基于其paintComponent的可滚动JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com