我在java中编写了一个程序,并使用了几个在我的程序中执行操作的组件(actionListener)。 我想知道这个组件何时发生了什么动作。例如,当我单击按钮或菜单项时,请调用方法。
public class ButtonFrame extends JFrame
{
private JButton plainJButton; // button with just text
private JButton fancyJButton; // button with icons
public ButtonFrame()
{
super( "Testing Buttons" );
setLayout( new FlowLayout() ); // set frame layout
plainJButton = new JButton( "Plain Button" );
add( plainJButton );
fancyJButton = new JButton( "Fancy Button");
add( fancyJButton );
// create new ButtonHandler for button event handling
ButtonHandler handler = new ButtonHandler();
fancyJButton.addActionListener( handler );
plainJButton.addActionListener( handler );
}
private class ButtonHandler implements ActionListener
{
public void actionPerformed( ActionEvent event )
{
JOptionPane.showMessageDialog( ButtonFrame.this, String.format(
"You pressed: %s", event.getActionCommand() ) );
}
}
}
答案 0 :(得分:1)
使用event.getSource()
区分已注册的组件。
示例 -
if(plainJButton == event.getSource()){
// do stuff (e.g. show message dialog, invoke method, and etc.)
}
else if(fancyJButton == event.getSource()){
// do stuff (e.g. show message dialog, invoke method, and etc.)
}
else{
// ut-oh..time to panic!
}
答案 1 :(得分:0)
您可以在活动中使用getSource()
。