Я создаю макет графического интерфейса для своего приложения, используя сумку сетки, и я пытаюсь создать функцию для компоновки каждого элемента, чтобы мне не пришлось постоянно печатать один и тот же код сетки сумка снова и снова. Я хочу, чтобы переписать этот код:Java-функция для создания панели графического интерфейса
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);
}
Теперь он скомпилируется, но когда я запускаю его, он не работает. Все ярлыки отображаются в одной строке, а не в макете, которую я ищу.
Является ли то, что я пытаюсь сделать просто, возможно, или я что-то пропустил в своем коде? Какие-либо предложения?
я вижу. Я оставляю вызов GridBagLayout() в функции, где я вызываю функцию labelPosition(), и только переадресую вызов Constraints() к новой функции. Я рад, что это сработало. Это вытолкнуло около 100 строк кода из этого файла и сделало его более читаемым. Спасибо, Андреас. – tworley1977