我想绘制一个由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个小时......
谢谢!
答案 0 :(得分:2)
我想绘制一个由Graphics2D矩形构成的简单板
进行自定义绘制时,还需要覆盖组件的getPreferredSize(...)
方法以返回组件的大小。
然后布局管理器可以使用此信息,您不需要使用刚性区域。
将组件添加到框架时,您只需使用默认的BorderLayout:
frame.add(board, BorderLayout.CENTER);
frame.add(button, BorderLayout.SOUTH);
我建议你阅读Swing tutorial。 custom painting
和using layout managers
部分将提供更多详细信息和示例。