为Graphics2D绘图创建空间

我想绘制一个由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个小时……

谢谢!

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

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

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

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

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

我建议你阅读Swing教程 。 有关于custom paintingusing layout managers将提供更多细节和示例。