import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FibStuck extends JFrame implements ActionListener { private JTextField numField, seqField; private JButton start; public FibStuck() { setTitle("Fibonacci"); setSize(1000, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container pane = getContentPane(); pane.setLayout(new FlowLayout()); numField = new JTextField(10); pane.add(numField); start = new JButton("Compute Fibonacci"); start.addActionListener(this); pane.add(start); seqField = new JTextField(80); pane.add(seqField); } public void actionPerformed(ActionEvent e) { if (e.getSource() == start) { String result = ""; int max = Integer.parseInt(numField.getText()); for (int i = 0; i <= max; ++i) { result += " " + computeFib(i); } seqField.setText(result); } } private int computeFib(int f) { if (f < 2) {return 1;} else { return computeFib(f - 1) + computeFib(f - 2); } } public static void main(String[] args) { FibStuck f = new FibStuck(); f.setVisible(true); } }