Я создаю макет графического интерфейса для своего приложения, используя мешок сетки, и я пытаюсь придумать функцию для компоновки каждого элемента, чтобы мне не приходилось набирать один и тот же код мешка сетки снова и снова. Я хочу переписать этот код:
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints bc = new GridBagConstraints();
this.setLayout(gridbag);
bc.fill = GridBagConstraints.HORIZONTAL;
bc.anchor = GridBagConstraints.WEST;
bc.insets = new Insets(0, 10, 10, 0);
bc.gridx = 0;
bc.gridy = 0;
bc.gridwidth = 1;
this.add(programNameLabel, bc);
так что его можно написать, вызывая такую функцию:
labelPosition(GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST, 0, 10, 10, 0, 0, 0, 1, programNameLabel);
Вот функция, которую я написал для этой задачи.
protected void labelPosition(int axis, int direction, int insetOne, int insetTwo, int insetThree, int insetFour, int gridX, int gridY, int gridWidth, JLabel name)
{
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints bc = new GridBagConstraints();
this.setLayout(gridbag);
bc.fill = axis;
bc.anchor = direction;
bc.insets = new Insets(insetOne, insetTwo, insetThree, insetFour);
bc.gridx = gridX;
bc.gridy = gridY;
bc.gridwidth = gridWidth;
this.add(name, bc);
}
Сейчас он компилируется, но когда я его запускаю, он не работает. Все метки отображаются в одной строке, а не в том макете, который я ищу.
Возможно ли то, что я пытаюсь сделать, или мне что-то не хватает в моем коде? Какие-либо предложения?