JFrameのレイアウトをグリッドバッグレイアウトに設定しようとしています。私は本質的に同じサイズの4つのグリッドのように見せたいが、底部2は1つのパネルにマージされる。私はそれぞれJPanelsを追加しています。しかし、JFrameの中央に3つの小さいグリッドがあり、サイズが適切ではありません。代わりにこのように見えます。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();
}
}
準備が何をするかが非常に重要ではありません。それは単にテキストファイルからランダムな単語を取ります。レイアウトにどのような影響があるかわかりませんでした。要約すると、4つのグリッドスペースのそれぞれがウィンドウの4分の1にわたるようにして、それぞれにJPanelを追加して下の2セルをマージするようにする必要があります。どんな助けもありがとうございます。前もって感謝します。
編集: すべての重みを1に設定する必要がありました。解決されました。
* "編集:すべての重みを1に設定する必要がありました。解決しました。" *うーん、良いですが、質問を編集するのは間違った場所/方法です。問題を解決するのに役立ちましたら、[この回答を受け入れてください](http://meta.stackexchange.com/a/5235/155831)してください。 –