gpt4 book ai didi

java - 确定调用事件处理程序的对象

转载 作者:行者123 更新时间:2023-12-01 18:31:15 26 4
gpt4 key购买 nike

我正在用 Java 编写一个程序,它有一个 JButton 数组,它们都需要使用相同的事件处理程序。问题是事件处理程序需要对每个按钮进行更改。因此,我需要能够确定调用事件处理程序的对象并对其进行更改。我已经搞乱这个有一段时间了。我在 Google 上搜索 java get name of object Calling event handler 但没有找到任何有用的信息。

这是我迄今为止所拥有的内容的副本,其中删除了所有额外的程序代码。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;
import java.*;

public class MyJavaProgram extends JFrame implements ActionListener
{
// Buttons
JButton[] buttonsArray = new JButton[20];

public MyJavaProgram()
{
// Fonts
Font arial = new Font("Arial", Font.PLAIN, 25);

for(int x = 0; x < buttonsArray.length; x++)
{
buttonsArray[x] = new JButton(Integer.toString(x + 1));
buttonsArray[x].setFont(arial);
buttonsArray[x].addActionListener(this);
}

// Get the content pane and set the layout.
Container jPane = getContentPane();
jPane.setLayout(new GridLayout(8, 10)); // (rows, columns)

// JFrame general settings.
setTitle("My Java Program");
setSize(700, 500); // width, height
setVisible(true);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE); // Without this, the program will continue running even if the X is clicked.

// Add our stuff to the JFrame.
for(int x = 0; x < buttonsArray.length; x++)
jPane.add(buttonsArray[x]);
}

public void actionPerformed(ActionEvent e)
{
System.out.println("Event triggered by one of the 20 buttons.");
}

public static void main(String[] args)
{
MyJavaProgram programUI = new MyJavaProgram();
}
}

最佳答案

这正是 source 的意思ActionEvent 的用途是:

public void actionPerformed(ActionEvent e)
{
JButton button = (JButton) e.getSource();
System.out.println("Event triggered by " + button.getText());
}

关于java - 确定调用事件处理程序的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140977/

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