2012-03-19 28 views
0

我做學校項目的數組,我們需要創建有很多JButtonsActionListeners,圖像等程序我創建了一個類有許多個人和ActionListenersJButtons,但我怎樣才能把它變成一個按鈕的數組,而不是單獨創建它們?如何使我的JButton /的ActionListeners

這是我的代碼...

public class Selectie extends JFrame{ 

    private JButton keeper, verdediger, verdediger1, verdediger2; 

    public void initGUI() { 
     keeper = new JButton("1. "+""+" Kenneth Vermeer"); 
     Cursor cur = keeper.getCursor(); 
     keeper.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
     keeper.setBounds(20, 50, 186, 12); 
     keeper.setFocusable(false); 
     keeper.setBorderPainted(false); 
     keeper.setContentAreaFilled(false); 
     keeper.setFont(new Font("Arial",Font.PLAIN,17)); 
     keeper.setForeground(Color.WHITE); 
     keeper.setActionCommand(Vermeer); 

     verdediger = new JButton("2. "+""+" Gregory van der Wiel"); 
     Cursor cur1 = verdediger.getCursor(); 
     verdediger.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
     verdediger.setBounds(20, 70, 215, 17); 
     verdediger.setFocusable(false); 
     verdediger.setBorderPainted(false); 
     verdediger.setContentAreaFilled(false); 
     verdediger.setFont(new Font("Arial",Font.PLAIN,17)); 
     verdediger.setForeground(Color.WHITE); 
     verdediger.setActionCommand(Gregory); 

     verdediger1 = new JButton("3. "+""+" Toby Alderweireld"); 
     Cursor cur2 = verdediger1.getCursor(); 
     verdediger1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
     verdediger1.setBounds(20, 95, 188, 17); 
     verdediger1.setFocusable(false); 
     verdediger1.setBorderPainted(false); 
     verdediger1.setContentAreaFilled(false); 
     verdediger1.setFont(new Font("Arial",Font.PLAIN,17)); 
     verdediger1.setForeground(Color.WHITE); 
     verdediger1.setActionCommand(Alderweireld); 

     verdediger2 = new JButton("4. "+""+" Jan Vertonghen"); 
     Cursor cur3 = verdediger2.getCursor(); 
     verdediger2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
     verdediger2.setBounds(20, 120, 174, 17); 
     verdediger2.setFocusable(false); 
     verdediger2.setBorderPainted(false); 
     verdediger2.setContentAreaFilled(false); 
     verdediger2.setFont(new Font("Arial",Font.PLAIN,17)); 
     verdediger2.setForeground(Color.WHITE); 
     verdediger2.setActionCommand(Vertonghen); 

     SelectieController s1 = new SelectieController(keeper,verdediger,verdediger1,verdediger2); 

     keeper.addActionListener(s1); 
     verdediger.addActionListener(s1); 
     verdediger1.addActionListener(s1); 
     verdediger2.addActionListener(s1); 
    } 
} 
+0

這不是一個家庭作業嗎? – 2012-03-19 11:33:56

+0

重新標記爲包含[tag:作業]並刪除不相關的標記。 – 2012-03-19 11:34:37

+0

如果您的問題已得到解答,或者不再有效,請勾選以選擇最合適的答案,以便每個人都知道問題已得到解決。謝謝。 – wattostudios 2012-05-14 13:18:27

回答

0

沒有做完所有的工作,你需要做這樣的事情(你可以在填補空白 - 它是你的功課,畢竟...)

// create the array 
JButton[] buttons = new JButton[10]; 

// Repeat for each button... 
for (int i=0;i<buttons.length;i++){ 
    // create the button 
    JButton button = new JButton("label"); 

    // set the button properties... 
    button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 
    button.setBounds(20, 95, 188, 17); 
    button.setFocusable(false); 
    button.setBorderPainted(false); 
    button.setContentAreaFilled(false); 
    // etc. 

    // Assign the listener 
    button.addActionListener(s1); 

    // Add the button to the array 
    buttons[i] = button; 
    }