【问题标题】:Gridlayout makes it's own marginGridlayout 有自己的优势
【发布时间】:2017-05-08 08:16:22
【问题描述】:

我一直在用网格 gui 制作游戏,我制作了 MyPanel,它扩展了 JPanel 以显示背景图像,并拥有自己的按钮。问题是,当我制作大于 12x12 的网格布局时,它会变成自己的尺寸:

左边的图片是 13 有 小边距,我无法摆脱。代码:

private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        MyPanel panel = new MyPanel();
        panel.setBounds(10, 10, 360, 360);
        frame.getContentPane().add(panel);
        panel.setLayout(new GridLayout(size,size));

        buttons = new Button[size][];
        for(int i=0;i<size;i++)
        {

            buttons[i] = new Button[size];
            for(int j=0;j<size;j++)
            {
                buttons[i][j] = new Button();
                panel.add(buttons[i][j]);
            }
        }
    }

【问题讨论】:

  • "小边距,我无法摆脱":哪里???也许如果您将答案输入两次粗体,我们将能够看到它
  • @gpasch 正如你在左上角右边的图片中看到的那样,有一些按钮,但它们不能完美地贴在窗格的开头。

标签: java swing user-interface jpanel awt


【解决方案1】:

不要使用空布局!

使用布局管理器的重点是布局管理器将确定面板的大小。

然后您只需在框架上使用pack(),所有组件都将以其首选大小显示。

另外,不要使用Button,它是一个 AWT 组件。 Swing 组件以"J" 开头,因此您应该使用JButton

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2011-10-14
    相关资源
    最近更新 更多