gpt4 book ai didi

java - Action 监听器java问题

转载 作者:行者123 更新时间:2023-12-01 09:44:41 27 4
gpt4 key购买 nike

好的,我正在开发一个游戏,现在我有一个图像,我尝试在图像下的特定位置放置按钮,这样当用户单击屏幕的该部分时,图像就会发生变化。我在尝试弄清楚如何为 Action 监听器格式化我的程序时遇到困难。

public class TestJFrame{
private static JFrame frame = new JFrame();
private static JLabel label = new JLabel();
private static JButton buttons[] = new JButton[4];

private static int[][] location = new int[3][4];


public static void main(String args[]){
frame.getInsets().set(20, 5, 5, 5);

frame.setLayout(null);
frame.setPreferredSize(new Dimension(507, 528));
frame.pack();
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Test");

buttons[0] = new JButton("jbZero");
buttons[1] = new JButton("jbOne");
buttons[2] = new JButton("jbTwo");
buttons[3] = new JButton("jbThree");

frame.add(buttons[0]);
frame.add(buttons[1]);
frame.add(buttons[2]);
frame.add(buttons[3]);

setButtons();
frame.setVisible(true);

buttons[0].setLocation(100, 100);
}


private static void setButtons(){
for (int i=0;i<=3;i++){
buttons[i].setSize(10, 10);
buttons[i].setLocation(0, 0);
buttons[i].setVisible(true);
}
}

public void intializeListener(){
buttons[0].addActionListener((ActionListener) this);
}

public void buttonsZeroActionPreformed(java.awt.event.ActionEvent e){
System.out.println("button zero works");
}
}

因此,任何帮助将不胜感激。

最佳答案

取决于您想在监听器中实现什么:

  1. 如果它们执行相同的操作,您可以在 setButtons 函数中实现监听器:

    private static void setButtons(){
    for (int i=0;i<=3;i++){
    buttons[i].setSize(10, 10);
    buttons[i].setLocation(0, 0);
    buttons[i].setVisible(true);

    buttons[i].addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    // listener implement btn 0
    }
    });
    }
    }
  2. 如果每个按钮都需要唯一的实现,我认为更好的实现将在新函数 setBtnListeners 中,并在使用 setButtons(); 后从主函数调用它:

    private static void setBtnListeners() {
    buttons[0].addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    // listener implement btn 0
    }
    });
    }

更新:抱歉,我刚刚注意到您有四个按钮...您可以添加另一个按钮:)

关于java - Action 监听器java问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161034/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com