为 Graphics2D 绘图创建空间

2023-12-21

我想绘制一个由 Graphics2D 矩形组成的简单板,但我也想在该板下有一个 JButton。我知道该板的确切尺寸(以像素为单位),并且我正在尝试处理getContentPane()方法和 BoxLayout,如下所示:

frame.getContentPane().add(board);
frame.getContentPane().add(Box.createRigidArea(new Dimension(bWidth, bHeight)));
frame.getContentPane().add(new JButton("Start"));
frame.pack();

但 RigidArea 并不是真正隐形的,它会覆盖我的绘图。您能给我一些如何使其正常工作的提示吗? :( 我只想要一个小按钮,它让我在这里坐了大约 2 个小时......

Thanks!


我想画一个由 Graphics2D 矩形组成的简单板

当你进行自定义绘画时,你还需要覆盖getPreferredSize(...)组件的方法返回组件的大小。

然后布局管理器可以使用此信息,并且您将不需要使用刚性区域。

当您将组件添加到框架时,您可以只使用默认的 BorderLayout:

frame.add(board, BorderLayout.CENTER);
frame.add(button, BorderLayout.SOUTH);

我建议你阅读摇摆教程 http://docs.oracle.com/javase/tutorial/uiswing/TOC.html。有一节关于custom painting and using layout managers这将提供更多细节和示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Graphics2D 绘图创建空间 的相关文章

随机推荐