Я пытаюсь установить макет JFrame в качестве макета сетки. Я хочу по существу выглядеть как 4 сетки одинакового размера, но с дном 2 объединены в одну панель. Я добавляю JPanels к каждому. Тем не менее, я получаю 3 небольших сетки в середине JFrame, но не должным образом. Это похоже на это.GridBagLayout создание очень маленьких панелей
Мой код выглядит следующим образом:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Hangman extends JPanel{
private String word;
private JPanel hA, gL, letters;
public void setupLayout(JFrame window){
window.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
hA = new JPanel();
hA.setBackground(Color.blue);
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridy = 0;
window.add(hA, c);
gL = new JPanel();
gL.setBackground(Color.green);
c.fill = GridBagConstraints.BOTH;
c.gridx = 1;
c.gridy = 0;
window.add(gL, c);
letters = new JPanel();
letters.setBackground(Color.black);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 2;
window.add(letters, c);
}
public void startWindow(){
JFrame window = new JFrame();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int screenHeight = (int) screenSize.getHeight();
int windowHeight = (int) ((screenHeight/4) * 3);
window.setSize(windowHeight, windowHeight);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setupLayout(window);
window.setVisible(true);
}
public void startGame(){
Prep prepare = new Prep();
word = prepare.findWord(true);
startWindow();
}
public static void main(String[] args){
Hangman start = new Hangman();
start.startGame();
}
}
Это не очень важно то, что делает Prep. Это просто случайное слово из текстового файла. Я не мог понять, как это повлияет на макет. Чтобы повторить, мне нужно сделать так, чтобы каждое из четырех пространств сетки занимало одну четверть окна, а затем делало донные 2 ячейки объединенными с JPanel, добавленным к каждому из них. Любая помощь приветствуется. Заранее спасибо.
EDIT: Мне нужно было установить вес всех из них, чтобы быть 1. Он решен.
* «EDIT: Мне нужно было установить вес всех из них, чтобы он был 1. Он решен». * Хорошо, но редактирование вопроса - это неправильное место/способ сообщить об этом. Пожалуйста, [примите этот ответ] (http://meta.stackexchange.com/a/5235/155831), если это поможет решить проблему. –