ACM Interactors Freeze

Я пытаюсь сделать очень простую программу с Swing и ACM-интеракторами. Он взят прямо из раздаточного материала, но не работает на моем компьютере. Когда я запускаю его, он работает нормально примерно полсекунды, затем кратковременно мигает, перезагружается, а затем все функции кнопок и текстовых полей теряются. Вот код:

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;
}

Если это поможет, я использую Java SE 1.6 с Eclipse Helios Service Release 2 на Mac Pro середины 2010 года под управлением Mac OSX 10.8.4.

1 ответ

Решение

В качестве обходного пути, в дополнение к использованию 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;
}
Другие вопросы по тегам