0

GridBagLayoutを使用して配列の要素を保持するパネルを作成しようとしています。要素の作成は問題なく機能します。問題は、Layoutmanagerが無視されるか、制約が正しく適用されないことです。とにかく、ボタンはLayoutmanagerがまったくないかのように配置されます。それで、テーブルのように見えるようにするにはどうすればよいですか?

前もって感謝します!

補足:いいえ、JTableはオプションではありません。私のアプリケーションでは、一部のボタンのみが実際に作成されます。

編集:私は問題を見つけました。「setLayout(gbl);」という行を忘れただけです。愚かな私。

//(includes)

public class GUI {
    public static void main (String[] args) {
        JFrame frame = new JFrame();
        frame.add (new MyPanel(5, 4);
        frame.setVisible(true);
    }

    private class MyPanel () extends JPanel {
        public MyPanel (int x, int y) {
            GridBagLayout gbl = new GridBagLayout();
            GridBagConstraints gbc = new GridBagConstraints();
            setLayout (gbl);

            JButton[][] buttons = new JButton[x][y];
            for (int i=0; i<x; i++) {
                for (int j=0; j<y; j++) {
                    buttons[i][j] = new JButton("a"+i+j);
                    gbc.gridx = j; gbc.gridy = i;
                    gbl.setConstraints(buttons[i][j], gbc);
                    add (buttons[i][j]);
                }
            }
        }
    }
}
4

1 に答える 1