Вот что я хочу получить:Какова была бы правильная конфигурация GridbagLayout для получения такого дисплея?
Проблема я столкнулся с этим относится к правой верхней части:
С моим кодом, синий блок отчаянно не охватывая под оба зеленых блоков. Он застревает либо влево или вправо (в зависимости от веса я применяю, в gridx и Gridy значений остаются теми же самыми):
или
У меня есть правильные/Gridy значения gridx, но я не может получить правильные веса. Какой будет правильный код?
Edit: здесь есть минимальный рабочий пример:
Код:
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.add(panel);
panel.setLayout(new GridBagLayout());
JLabel score1 = new JLabel("Score1");
JLabel score2 = new JLabel("Score2");
JLabel team1 = new JLabel("Team1TestTest");
JLabel team2 = new JLabel("Team2TestTest");
JLabel clock = new JLabel("Clock");
// Layout
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(10,10,10,10);
gbc.anchor = GridBagConstraints.CENTER;
gbc.weighty = gbc.weightx = 1;
// First two lines
gbc.gridy=0;
// -teams
gbc.gridx=0;
gbc.gridheight = 1;
gbc.gridwidth = 2;
panel.add(team1,gbc);
gbc.gridx=2;
gbc.gridheight = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(team2,gbc);
// -score 1
gbc.gridy=1;
gbc.gridx=0;
gbc.gridheight = 1;
gbc.gridwidth = 1;
panel.add(score1,gbc);
// -clock
gbc.gridx=1;
gbc.gridheight = 1;
gbc.gridwidth = 2;
panel.add(clock,gbc);
// -score 2
gbc.gridx=3;
gbc.gridheight = 1;
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(score2,gbc);
frame.setContentPane(panel);
frame.setVisible(true);
frame.pack();
while(true) {}
}
}
Результат:
Было бы полезно иметь ваш фактический код в качестве отправной точки. –
для лучшей помощи, пожалуйста, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve), которое демонстрирует проблему. – Frakcool
Редактировать: добавлен MCVE. – Silverspur