我正在扩展 JButton 函数以便自动化一些事情,所以我只添加了这个函数:
public void addButton(Container container, int left, int top, int width, int height)
{
this.setBounds(left, top, width, height);
this.setSize(width, height);
container.add(this);
this.repaint();
}
我在我的面板中运行这段代码:
buttonLeft = new extendedButton("Left");
buttonMiddle = new extendedButton("Middle");
buttonRight = new extendedButton("Right");
Insets inset = this.getInsets();
setLayout(null);
Container c = getContentPane();
buttonLeft.addButton(c, inset.left, inset.top, 150, 50);
buttonMiddle.addButton(c, inset.left + buttonLeft.WIDTH, inset.top, 150, 50);
buttonRight.addButton(c, inset.left + buttonLeft.WIDTH + buttonRight.WIDTH, inset.top, 150, 50);
但是,尽管我希望这些按钮一个接一个地出现,但它们似乎一个在另一个之上,一个像素在右边。但是,如果我将 .WIDTH 参数替换为 150,它会按预期工作,关于为什么 .WIDTH 拒绝给出我设置的值的任何线索?我没有使用布局,我给它 null 作为参数。