GridBag Layout Manager に少し問題があります。次のように 9 つのパネルを表示しようとしています。
そのために、次のようにグリッドを分離しました。
パネル 1 から 7 までは問題なく、思いどおりに表示されます。しかし、問題はパネルS8
とS9
. ご覧のとおり、S8
とS9
がフレームの半分を占めていますが、このように表示することはできません。はのS8
先頭で終わり、 は の最後S4
でS9
始まりS4
、半角スペースを処理できません。
私が理解した唯一の方法は、すべてのフレーム幅を占める別のパネルにS8
andS9
パネルを配置することですが、別のパネルに配置せずにこれら2つのパネルを表示する適切な方法があるはずです!
コードは次のとおりです。
workzone.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.NORTHWEST;
c.fill = GridBagConstraints.BOTH;
c.weightx = 0.5;
c.weighty = 0.5;
c.insets = new Insets(0,0,0,0);
//S1
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 2;
c.gridheight = 2;
workzone.add(S1, c);
//S2
c.gridx = 2;
c.gridy = 0;
c.gridwidth = 2;
c.gridheight = 1;
workzone.add(S2, c);
//S3
c.gridx = 2;
c.gridy = 1;
c.gridwidth = 2;
c.gridheight = 1;
workzone.add(S3, c);
//S4
c.gridx = 4;
c.gridy = 0;
c.gridwidth = 2;
c.gridheight = 2;
workzone.add(S4, c);
//S5
c.gridx = 7;
c.gridy = 0;
c.gridwidth = 1;
c.gridheight = 1;
workzone.add(S5, c);
//S6
c.gridx = 7;
c.gridy = 1;
c.gridwidth = 2;
c.gridheight = 1;
workzone.add(S6, c);
//S7
c.gridx = 8;
c.gridy = 0;
c.gridwidth = 2;
c.gridheight = 2;
workzone.add(S7, c);
//S8
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 5;
c.gridheigth = 1;
workzone.add(S8, c);
//S9
c.gridx = 6;
c.gridy = 2;
c.gridwidth = 5;
c.gridheight = 1;
workzone.add(S9, c);
どんなアイデアや提案も大歓迎です!