2017-02-02 2 views
0

Я начинаю программировать в целом, и мне было интересно, вместо того, чтобы вводить то, что дано ниже, если есть способ присвоить эти имена переменных в String [] или сделать это там, где я не набираю то же самое код снова и снова с разными переменными?Java - Можете ли вы назначить методы массиву?

JButton one = new JButton("1"); 
    one.addActionListener(new Numbers()); 
    add(one); 

    JButton two = new JButton("2"); 
    two.addActionListener(new Numbers()); 
    add(two); 

    JButton three = new JButton("3"); 
    three.addActionListener(new Numbers()); 
    add(three); 

Спасибо!

+3

Первый отличается от двух других - имеет 'panel4.add()' вместо просто 'add'. Это намеренно? Потому что вы не сможете обобщить, если это так. – RealSkeptic

+0

Вы должны создать метод для такого рода работы. И передайте номер методу в качестве параметра. – user152468

+0

@RealSkeptic, ну не только с 'String', но вы можете использовать более сложную структуру с добавленным компонентом. – AxelH

ответ

7

Нет, но вы можете назначить свой JButtons массиву.

JButton[] buttons = new JButton[3]; 
for(int i = 0;i < 3; i++) { 
    buttons[i] = new JButton(String.valueOf(i)); 
    buttons[i].addActionListener(new Numbers()); 
    add(buttons[i]); 
} 

Если вам не нужен доступ к ссылкам jbutton позже, вам даже не нужен массив.

for(int i = 0;i < 3; i++) { 
    JButton jb = new JButton(String.valueOf(i)); 
    jb.addActionListener(new Numbers()); 
    add(jb); 
}