gpt4 book ai didi

java - getSource() 和 getActionCommand()

转载 作者:太空狗 更新时间:2023-10-29 22:33:20 26 4
gpt4 key购买 nike

什么是 getSource?它返回什么?

什么是 getActionCommand() 以及它返回什么??

我对这两者感到困惑,任何人都可以给我或区分它们吗? UI 中的 getSource 和 getActionCommand() 有什么用?具体是 TextField 还是 JTextField?

最佳答案

假设您正在谈论 ActionEvent类,那么这两种方法有很大的区别。

getActionCommand() 为您提供一个表示操作命令的字符串。该值是组件特定的;对于 JButton,您可以选择使用 setActionCommand(String command) 设置值,但对于 JTextField,如果您不设置它,它会自动为您提供文本字段的值。根据 javadoc,这是为了与 java.awt.TextField 兼容。

getSource()EventObject 类指定,ActionEvent 是子类(通过 java.awt.AWTEvent)。这为您提供了事件来源对象的引用。

编辑:

这是一个例子。有两个字段,一个明确设置了操作命令,另一个没有。在每个文本中输入一些文本,然后按回车键。

public class Events implements ActionListener {

private static JFrame frame;

public static void main(String[] args) {

frame = new JFrame("JTextField events");
frame.getContentPane().setLayout(new FlowLayout());

JTextField field1 = new JTextField(10);
field1.addActionListener(new Events());
frame.getContentPane().add(new JLabel("Field with no action command set"));
frame.getContentPane().add(field1);

JTextField field2 = new JTextField(10);
field2.addActionListener(new Events());
field2.setActionCommand("my action command");
frame.getContentPane().add(new JLabel("Field with an action command set"));
frame.getContentPane().add(field2);


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(220, 150);
frame.setResizable(false);
frame.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent evt) {
String cmd = evt.getActionCommand();
JOptionPane.showMessageDialog(frame, "Command: " + cmd);
}

}

关于java - getSource() 和 getActionCommand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214958/

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