Пытаюсь понять, как работает GridBagLayout
для Java. Никогда не использовал его раньше, так что, вероятно, это глупая ошибка, которую я сделал.
Моя цель — разместить JLabel
вверху по центру страницы. Я использовал учебники по Java для Oracle, но мне не повезло. Кажется, этикетка остается в центре страницы. (центр как мертвая точка графика x и y).
Насколько я понял, если я установлю ограничение gridx
и gridy
на 0
, компилятор будет смотреть на верхнюю, первую строку программы и размещать текст там. Затем я использовал привязку PAGE START
, чтобы поместить текст в центр страницы. Я не совсем уверен, что функции weightx
и weighty
делают в мою защиту.
import javax.swing.*;
import java.awt.*;
class test
{
public static void main (String Args [])
{
//frame and jpanel stuff
JFrame processDetail = new JFrame("Enter information for processes");
JPanel panelDetail = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
//label to add on top centre
JLabel label = new JLabel("LOOK AT ME");
//set size of frame and operation
processDetail.setSize(500,500);
processDetail.setDefaultCloseOperation(processDetail.EXIT_ON_CLOSE);
//add the label to panel
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.PAGE_START;
c.weightx = 0; //not sure what this does entirely
c.gridx = 0; //first column
c.gridy = 0; //first row
panelDetail.add(label, c);
processDetail.add(panelDetail);
processDetail.setVisible(true);
}
}