2014-02-25 70 views
-1

我是編程新手,我想創建一個具有動作偵聽器的數千個J按鈕的網格,它們都是相同的,但它們獨立工作而無需編碼他們中的每一個。我如何存檔,J按鈕網格(如何在Java中動態創建J按鈕)

+2

高出一個......一個'換loop'想到... – MadProgrammer

+2

爲什麼地球上任何人都想要一個1000Button的網格?你一次只能與幾個進行交互。有些東西告訴我這個設計已經壞了,需要修復。 –

回答

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); 
     } 
    } 
} 
+0

非常感謝 – Shadowkillsa