一尘不染

为Graphics2D工程图创建空间

java

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

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

但是RigidArea并不是真正不可见的,它会覆盖我的图纸。您能否给我一些技巧,以使其正常工作?:(我只想要一个小按钮,它让我现在在这里坐了大约2个小时…

谢谢!


阅读 199

收藏
2020-12-03

共1个答案

一尘不染

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

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

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

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

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

我建议您阅读Swing教程。有一节custom painting,并using layout managers将会提供更多的细节和例子。

2020-12-03