Java 为图形2D图形创建空间

Java 为图形2D图形创建空间,java,swing,graphics2d,boxlayout,Java,Swing,Graphics2d,Boxlayout,我想画一个由2D矩形组成的简单电路板,但我也想在这个电路板下有一个JButton。我知道这块板的确切尺寸(以像素为单位),我试图处理getContentPane()方法和BoxLayout,如下所示: frame.getContentPane().add(board); frame.getContentPane().add(Box.createRigidArea(new Dimension(bWidth, bHeight))); frame.getContentPane().add(new JB

我想画一个由2D矩形组成的简单电路板,但我也想在这个电路板下有一个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并不是真正看不见的,它覆盖了我的绘画。你能给我一些如何使它正常工作的建议吗(我只需要一个小按钮,它让我在这里坐了大约两个小时

谢谢

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

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

然后,布局管理器可以使用此信息,而无需使用刚性区域

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

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

我建议您阅读。这里有关于
自定义绘制
使用布局管理器
的部分,将提供更多细节和示例。

谢谢!这正是我所要求的!现在一切都很完美。:)好吧,作为本网站的新用户,这似乎是一个良好的开端…)