为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 painting
和using layout managers
将提供更多细节和示例。