2

与编写处理调整大小功能的侦听器相比,使用现有布局管理器有什么好处?例如,我需要在网格中排列按钮并将网格居中:

int h = component.getHeight() / 11;
int w = component.getWidth() / 9;
int offsetX = w;
int offsetY = h;
int x = (2 * column) * w - offsetX;
int y = (2 * row) * h - offsetY;

setBounds(x, y, w, h);

我没有在布局管理器中摸索,而是编写了一小段代码,每当调整 JPanel 的大小时,它就会为按钮激活。如果我要使用布局管理器,编写代码来安排所有内容会更麻烦,如果我要说向 JPanel 添加一个组件,事情会变得更加复杂,而不是简单地添加一些加法或减法.

因此,鉴于此,在这种情况下使用布局管理器是否有任何好处,或者一些自定义行是否更易于使用和维护?

4

3 回答 3

5

您的代码基本上是在模仿GridLayout.

setLayout(new GridLayout(11, 9));
// add all the components
...
// Profit

将其居中:

JPanel outerPanel = new JPanel(new BorderLayout());
JPanel gridPanel = new JPanel(new GridLayout());
outerPanel.add(gridPanel, BorderLayout.CENTER);
于 2010-11-15T22:06:44.443 回答
1

对于如此简单的事情,编写自己的代码可能很容易。但是当您发现需要添加两个新按钮和一个文本区域时会发生什么?我认为学习使用布局管理器是对您时间的一项很好的投资,因为这些知识可以让您轻松扩展 GUI 的复杂性。(没有双关语;)

于 2010-11-15T22:08:32.637 回答
1

凉爽的。现在尝试写相同的 128 次(对于每个屏幕上的每个控件)。这不是游戏的结束。现在尝试更改您的应用程序的图形设计,即再次重写此代码 128 次。享受!

于 2010-11-15T22:12:54.067 回答