Я недавно начал изучать Java, и сейчас пытаюсь работать с Swing, так что я все еще новичок в этом. Я пытаюсь сделать gridbaglayout с (в этом примере) 1 строкой и 1 столбцом, поэтому я добавил JPanel с некоторым цветом фона к макету, однако фоновый цвет, кажется, появляется только для длины текста, а не для Вся панель. Я хотел бы, чтобы цвет фона оставался на всю длину строки,
также мне пришлось добавить второй столбец с большим weightx, чтобы убедиться, что моя панель не была автоматически отцентрирована, есть ли лучший способ реализовать это?
Это код, который у меня сейчас есть,
public static void main(String args[]) {
JFrame mainFrame = new JFrame();
mainFrame.setSize(900, 600);
mainFrame.setLayout(new GridBagLayout());
JPanel roll = new JPanel();
roll.setBackground(new Color(190, 177, 245));
JLabel wageChangeTag = new JLabel("Change");
GridBagConstraints gRoll = new GridBagConstraints();
gRoll.gridx = 0;
gRoll.gridy = 0;
gRoll.weightx = 5;
gRoll.anchor = GridBagConstraints.CENTER;
roll.add(wageChangeTag, gRoll);
////////////// MAIN GRID//////////////////
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 0;
gc.gridy = 0;
gc.weightx = 5;
gc.anchor = GridBagConstraints.FIRST_LINE_START;
gc.weighty = 5;
mainFrame.add(roll, gc);
gc.gridx++;
gc.weightx = 0.1;
mainFrame.add(new JLabel(), gc);
mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}