如何制作我的JButton / ActionListener的数组

时间:2012-03-19 11:29:31

标签: java arrays jbutton actionlistener

我正在为学校做一个项目,我们需要创建一个包含许多JButtonsActionListeners,图片等的程序。我创建了一个包含许多个人ActionListenersJButtons,但是如何将其更改为按钮数组而不是单独创建它们?

这是我的代码......

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

1 个答案:

答案 0 :(得分: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;
  }