ActionEvent Call

I am involved in the process of training and creating a custom JButton / Component. I have most of all that I need, except that I don’t know how to call actionPerformed on my ActionListners.

code:

package myProjects; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.*; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; public class LukeButton extends JComponent{ public static void main(String[] args){ JFrame frame = new JFrame(); frame.setTitle("Luke"); frame.setSize(300, 300); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); LukeButton lb = new LukeButton(); lb.addActionListener(e->{ System.out.println("Success"); }); frame.add(lb); frame.setVisible(true); } private final ArrayList<ActionListener> listeners = new ArrayList<ActionListener>(); public LukeButton(){ } public void addActionListener(ActionListener e){ listeners.add(e); } public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; Shape rec = new Rectangle2D.Float(10, 10, 60, 80); g2.setColor(Color.BLACK); g2.setStroke(new BasicStroke(5)); g2.draw(rec); g2.setColor(Color.BLUE); g2.fill(rec); } } 

Does anyone know how to call the "listeners" of an ArrayList after clicking a button? Thanks for taking the time.

0
source share
1 answer

You need to ActionListener over your ActionListener list and call their actionPerformed method, something like ...

 protected void fireActionPerformed() { if (!listeners.isEmpty()) { ActionEvent evt = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "LukeButton"); for (ActionListener listener : listeners) { listener.actionPerformed(evt); } } } 

Now you need to identify the actions that may trigger the ActionEvent event, mouse click, key press, etc. and calling fireActionPerformed when they happen

See How to Write a Mouse Listener and How to Make Use Key Bindings for more details.

+3
source

All Articles