为Graphics2D绘图创建空间

时间:2014-05-12 19:19:41

标签: java swing graphics2d boxlayout

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

谢谢!

1 个答案:

答案 0 :(得分:2)

  

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

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

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

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

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

我建议你阅读Swing tutorialcustom paintingusing layout managers部分将提供更多详细信息和示例。