在构造函数中放置函数后,不会加载JFrame

时间:2013-11-21 09:20:47

标签: java arrays swing jframe jbutton

这是我正在尝试加载的功能:

public void ShowButtonsArray()
{
        SeatsUI Form = new SeatsUI();
            Form.setVisible(true);
            Form.setSize(1000, 1000); //Sets the screen's size
            JButton [][] buttonArr = new JButton[15][12];
            int CellSize = 60;

            for(int i = 0; i < 15; i++)
            {
                for(int j = 0 ; j < 12; j++)
                {
                    buttonArr[i][j] = new javax.swing.JButton();
                    buttonArr[i][j].setText("" + i + "," + j );
                    buttonArr[i][j].setBounds(j*CellSize, i*CellSize + 50, CellSize, CellSize);
                    buttonArr[i][j].addActionListener(new Java.awt.event.ActionListener() 
                    {
                            //Seat Button Event
                            public void actionPerformed(java.awt.event.ActionEvent evt)
                            {
                                JButton but = (JButton)evt.getSource();
                                but.setBackground(Color.yellow);
                            }
                    }
                    );

                    Form.add(buttonArr[i][j]);
                }
            }
}

在把它变成一个函数之前,我在run()中写了它,它运行良好,但是在它移动之后:

public SeatsUI() {
    initComponents();
    ShowButtonsArray();
}  

它刚刚停止工作。我运行该项目但由于某种原因它被卡住并永远加载项目。我在这做错了什么?感谢。

1 个答案:

答案 0 :(得分:1)

当您调用ShowButtonsArray()时,然后从此方法中调用SeatsUI Form = new SeatsUI(),并在调用新的SeatsUI()时,在构造函数中调用ShowButtonsArray()。我认为它无法摆脱这种循环。