Я следую примерам из Java : The complete reference 8th edition (JDK 7)
на AWT, и я не могу показать строку в появившемся окне. Размер и заголовок установлены правильно, и появится окно. Если я выведу строку на консоли в методе paint(), я вижу, что она фактически вызывается несколько раз, но строка не появляется в окне моего приложения. Я не вижу, где я расходился с примером; Я на самом деле есть немного меньше кода (они добавили слушателя мыши и клавиш слушателя): \Java AWT drawString() не отображается в окне
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Main {
public static void main(String[] args) {
Application app = new Application();
app.setSize(new Dimension(640, 480));
app.setTitle("This is a test");
app.setVisible(true);
}
}
class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
class Application extends Frame {
public Application() {
addWindowListener(new MyWindowAdapter());
}
public void paint(Graphics g) {
System.out.println("Hey hey !");
g.drawString("Test", 10, 10);
}
}
@MadProgrammer я не видел SetVisible XD должен вызывать super.paint() – nachokk
@nachokk +1 для 'super.paint()' ... но реальный вопрос - почему AWT? – MadProgrammer
Почему AWT, а не Swing? См. Этот ответ на [Swing extras over AWT] (http://stackoverflow.com/a/6255978/418556) по многим причинам, чтобы отказаться от использования компонентов AWT. Если вам необходимо поддерживать более старые API на основе AWT, см. [Смешивание тяжеловесных и легких компонентов] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html). –