Java布局管理器

2 java resize layout-manager

使用现有布局管理器而不是编写处理调整大小函数的侦听器有什么好处?例如,我需要在网格中排列按钮并使网格居中:

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);
Run Code Online (Sandbox Code Playgroud)

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

因此,在这种情况下使用布局管理器会有什么好处,或者一些定制的线路更容易使用和维护?

jjn*_*guy 5

你的代码基本上是模仿的GridLayout.

setLayout(new GridLayout(11, 9));
// add all the components
...
// Profit
Run Code Online (Sandbox Code Playgroud)

以中心为中心:

JPanel outerPanel = new JPanel(new BorderLayout());
JPanel gridPanel = new JPanel(new GridLayout());
outerPanel.add(gridPanel, BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)