如何在Java WindowBuilder

时间:2016-03-16 17:17:10

标签: java windowbuilder

我正在为大学的某个科目制作一个游戏(Mine-Sweeper)。

我专注于第一级,它有7行10列。所以我想以某种方式添加,以编程方式添加每个方块的按钮。因为在这种情况下,我需要添加70个按钮(7x10)。

First two grey boxes are two buttons... 这是为两个按钮生成WindowBuilder编辑器的代码。

// buttons
private JButton button;
private JButton button_1;

public VTableroN1() {   
    initialize();
}

private void initialize() {
    frame = new JFrame();
    frame.getContentPane().setBackground(Color.WHITE);
    frame.setBounds(100, 100, 640, 480);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new MigLayout("", "[10%][10%][10%][10%][10%][10%][10%][10%][10%][10%]", "[14.28%][14.28%][14.28%][14.28%][14.28%][14.28%][14.28%]"));
    // buttons 
    frame.getContentPane().add(getButton(), "cell 0 0,grow");
    frame.getContentPane().add(getButton_1(), "cell 1 0,grow");
    frame.setVisible(true);
}

// buttons
private JButton getButton() {
    if (button == null) {
        button = new JButton("");
    }
    return button;
}
private JButton getButton_1() {
    if (button_1 == null) {
        button_1 = new JButton("");
    }
    return button_1;
}

我的问题是,如何逐个添加迭代方式70个按钮?

我想这是一个愚蠢的问题,但我找不到一个好的解决方案。我在StackOverflow中找不到任何相关的内容,只有类似的问题,但对于Android,但这与我的想法无关。

提前致谢,如果您需要我粘贴更多代码,请告诉我。我想我只粘贴了相关的代码。

1 个答案:

答案 0 :(得分:2)

完整的工作代码如下:

private void initialize() {
    frame = new JFrame();
    frame.getContentPane().setBackground(Color.WHITE);
    frame.setBounds(100, 100, 640, 480);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new MigLayout("", "[10%][10%][10%][10%][10%][10%][10%][10%][10%][10%]", "[14.28%][14.28%][14.28%][14.28%][14.28%][14.28%][14.28%]"));
    frame.setVisible(true);
    for (int row = 0; row<7; row++) {
        for (int col = 0; col<10; col++) {
            JButton b = new JButton();
            frame.getContentPane().add(b, "cell "+ col +" "+ row +",grow");
            // click method
            frame.getContentPane().addMouseListener(new MouseAdapter() {
                @Override
                public void mouseReleased(MouseEvent arg0) {
                    // code
                }
            });
        }
    }
}

重要的是

for (int row = 0; row<7; row++) {
    for (int col = 0; col<10; col++) {
        JButton b = new JButton();
        frame.getContentPane().add(b, "cell "+ col +" "+ row +",grow");
    }
}