J Button grid(如何在java中动态创建J Buttons)

时间:2014-02-25 01:12:38

标签: java grid jbutton

我是编程的新手,我想创建一个包含数千个J按钮的网格,这些J按钮的动作侦听器都是相同的,但它们可以独立工作,而无需对每个按钮进行编码。我将如何存档

1 个答案:

答案 0 :(得分:1)

Hovercraft Full Of Eels是正确的。你需要重新思考你想要做什么,这是一种令人讨厌的资源浪费,并且是一场等待发生的灾难。

你最好创建一个glass pane,它可以捕捉动作事件并根据它们的坐标触发动作。这将使用单个动作侦听器,而不是您想要超过1000个动作侦听器。

如果您想要视觉效果,只需覆盖要将按钮放入的容器的paint(Graphics g)方法:Performing Custom Painting

但是,以下内容说明了您的要求。它使用for循环在GridLayout中创建按钮网格,但我强烈建议不要使用它:

public static void createGrid(JPanel panel, int numberOfRows, int numberOfColumns)
{
    panel.setLayout(new GridLayout(numberOfRows, numberOfColumns));
    for (int c = 0; c < numberOfColumns; c++)
    {
        for (int r = 0; r < numberOfRows; r++)
        {
        JButton button = new JButton();
        button.addActionListener(new java.awt.event.ActionListener()
        {
            @Override
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
            //Add your code here for action event
            }
        });
        panel.add(button);
        }
    }
}