ACM Interactors Freeze

我正在尝试使用Swing和ACM交互器创建一个非常简单的程序。 它直接来自课堂讲义,但不能在我的电脑上运行。 当我运行它时,它可以正常运行大约半秒钟,然后短暂闪烁,重新加载,然后所有按钮和文本字段function都会丢失。 这是代码:

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 actionPerformed(ActionEvent e) { if (e.getSource() == nameField) { println("Hello, " + nameField.getText()); } } private JTextField nameField; } 

如果它有帮助,我将在运行Mac OSX 10.8.4的2010年中期Mac Pro上使用Java SE 1.6和Eclipse Helios Service Release 2

作为解决方法,除了使用Java 1.5之外,还要将字段添加到NORTH 。 此外,您可能希望扩展GraphicsProgram

修改后的SSCCE:

 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 actionPerformed(ActionEvent e) { if (e.getSource() == nameField) { println("Hello, " + nameField.getText()); } } private JTextField nameField; } 
Interesting Posts