0

我尝试将一系列按钮添加到框架的容器中。但是我发现添加到容器中的最后一个按钮总是占据整个屏幕而不是在正确的位置。我该如何解决这个问题?

以下是用于添加这些按钮的代码:

    for(int i = 0; i < n; i++)
    {
        button[i] = new JButton();
        container.add(button[i]);
        button[i].setText(NAME[i]);
        button[i].setBounds(WIDTH-OFFSET_EDGE-bd.w, OFFSET+i*(bd.h+bd.gap), bd.w, bd.h);
        button[i].addActionListener(handler);
        button[i].setVisible(true);
    }

容器如下:

Container container = this.getContentPane();

主类是JFrame的子类:

public class SimpleTextDemo extends JFrame

现在我的解决方案是使用一个不可见的额外按钮,以便有用的按钮可以位于正确的位置。但似乎这种方法很愚蠢......

4

2 回答 2

3

的默认布局JFrameBorderLayout. 如果添加按钮,JFrame它将占据整个容器。setLayout使用方法更改布局。

于 2013-10-24T07:31:44.707 回答
1

在 java 中,容器的默认布局设置为BorderLAyout()要正确添加它们,您必须明确提及要添加的按钮的位置。您添加的所有这些按钮都将添加到中心。最后,所有人都被重叠了。为避免这种情况,您可以给他们位置,如CENTER, EAST, WEST, NORTH, SOUTH

只显示最后一个按钮的原因是它们都重叠了。

于 2013-10-24T07:43:38.440 回答