如何編程多個JButton
對象以執行相同的任務?執行相同任務的多個JButton
我正在編寫一個在遊戲板上使用25個按鈕的遊戲。每個按鈕通過生成隨機數字並根據數字更改圖標來完成相同的操作。
這裏是我的代碼:
Random RG1 = new Random();
level_1_random_block = (RG1.nextInt(6));
final JButton btnNewButton = new JButton("");
btnNewButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent arg0) {
frame2.setVisible(false);
if (level_1_random_block == 0){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\oreDiamond.png"));
score += 100;
initialize_score();
}
if (level_1_random_block == 1){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\oreGold.png"));
score += 25;
initialize_score();
}
if (level_1_random_block == 2){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\oreGold.png"));
score += 25;
initialize_score();
}
if (level_1_random_block == 3){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\oreIron.png"));
score += 5;
initialize_score();
}
if (level_1_random_block == 4){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\oreIron.png"));
score += 5;
initialize_score();
}
if (level_1_random_block == 5){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\creeper.png"));
score -= 30;
initialize_score();
}
if (level_1_random_block == 6){
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\creeper.png"));
score -= 30;
initialize_score();
}
btnNewButton.removeMouseListener(this);
level_1_move_on = true;
continue_game();
}
});
btnNewButton.setIcon(new ImageIcon("C:\\Users\\Liam\\Desktop\\BOMB GAME\\grass_side.png"));
btnNewButton.setBounds(0, 0, 87, 87);
frame1.getContentPane().add(btnNewButton);
一切工作正常,但我想知道是否有編程所有的按鈕要做到這一點,而無需編寫150個不同if
報表的一個更簡單的方法。
我唯一的問題是,按鈕需要改變它的圖標,但每個'btnNewButton.setIcon(新的ImageIcon(「C:\\ \\用戶Liam \\ Desktop \\ BOMB GAME \\ oreDiamond.png「));'特定於它正在改變的按鈕。我還能用這個嗎? – Hoberfinkle
@Hoberfinkle是的!使用'ActionEvent#getSource()'和一個cast :) – NiziL
是的。你可以創建實現'ActionListener'的分離類。您可以使用for循環在按鈕上添加「ActionListener」。但不幸的是,你將不得不把這個邏輯與'if'語句放在分離的類中。 –