Gli Intermatori ACM congelano

Sto cercando di creare un programma molto semplice con gli interattori Swing e ACM. Viene preso direttamente da una dispensa di class, ma non funziona sul mio computer. Quando lo eseguo, funziona bene per circa mezzo secondo, quindi lampeggia brevemente, ricarica e quindi tutte le funzionalità di pulsante e campo di testo vengono perse. Ecco il codice:

import acm.program.*; import java.awt.event.*; import javax.swing.*; public class TextFieldExample extends ConsoleProgram { public void init() { nameField = new JTextField(15); add(new JLabel("Name: "), SOUTH); add(nameField, SOUTH); nameField.addActionListener(this); } public void actionPerformsd(ActionEvent e) { if (e.getSource() == nameField) { println("Hello, " + nameField.getText()); } } private JTextField nameField; } 

Se aiuta, sto usando Java SE 1.6 con Eclipse Helios Service Release 2 su Mac Pro a metà del 2010 con Mac OSX 10.8.4

Come soluzione alternativa, oltre a utilizzare Java 1.5 , aggiungere il campo al NORTH . Inoltre, potresti voler estendere GraphicsProgram .

SSCCE modificato:

 import acm.program.*; import java.awt.event.*; import javax.swing.*; public class TextFieldExample extends GraphicsProgram { @Override public void init() { nameField = new JTextField(15); add(new JLabel("Name: "), NORTH); add(nameField, NORTH); nameField.addActionListener(this); } @Override public void actionPerformsd(ActionEvent e) { if (e.getSource() == nameField) { println("Hello, " + nameField.getText()); } } private JTextField nameField; }