Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><a href="https://stackoverflow.com/questions/1779589/1780062#1780062">Not a duplicate question... but my answer should help with your question</a>.</p> <p>Short summery, my preference would be to have the JFrame class not implement ActionListener and then have a number of named inner classes withing the JFrame that do implement the ActionListener.</p> <p>I would place the main in a class unto itself... and call it Main.</p> <p>Here is some sample code for the way I like to do it:</p> <pre><code>import javax.swing.JFrame; import javax.swing.SwingUtilities; public class Main { private Main() { } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } private static void createAndShowGUI() { final FooFrame frame; frame = new FooFrame(); frame.setupGUI(); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } </code></pre> <p>and then the GUI:</p> <pre><code>import java.awt.FlowLayout; import java.awt.LayoutManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class FooFrame extends JFrame { private final JButton incrementBtn; private final JButton decrementBtn; private int value; { incrementBtn = new JButton("++"); decrementBtn = new JButton("--"); } private class IncrementListener implements ActionListener { public void actionPerformed(final ActionEvent evt) { increment(); } } private class DecrementListener implements ActionListener { public void actionPerformed(final ActionEvent evt) { decrement(); } } public void setupGUI() { final LayoutManager layout; layout = new FlowLayout(); setLayout(layout); setupListeners(); addComponents(); } private void setupListeners() { incrementBtn.addActionListener(new IncrementListener()); decrementBtn.addActionListener(new DecrementListener()); } private void addComponents() { add(incrementBtn); add(decrementBtn); } private void increment() { value++; System.out.println("value = " + value); } private void decrement() { value--; System.out.println("value = " + value); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload