Принципы построения графического интерфейса
В листинге 3.3 приведена полная программа этого вывода, а рис. 8.1 демонстрирует окно.
Рис. 8.1. Окно программы-приветствия
Листинг 8.3. Графическая программа с приветствием.
import java.awt.*; import java.awt.event.*; class HelloWorldFrame extends Frame{ HelloWorldFrame(String s){ super(s); } public void paint(Graphics g){ g.setFont(new Font("Serif", Font.ITALIC | Font.BOLD, 30)); g.drawstring("Hello, XXI century World!", 20, 100); } public static void main(String[] args){ Frame f = new HelloWorldFrame("Здравствуй, мир XXI века!"); f.setSize(400, 150); f.setvisible(true); f.addWindowListener(new WindowAdapter(){ public void windowciosing(WindowEvent ev)( System.exit(0); } }); } }
Для вывода текста мы переопределяем метод paint () класса component. Класс Frame наследует этот метод с пустой реализацией.
Метод paint () получает в качестве аргумента экземпляр g класса Graphics, умеющего, в частности, выводить текст методом drawstring (). В этом методе кроме текста мы указываем положение начала строки в окне – 20 пикселов от левого края и 100 пикселов сверху. Эта точка – левая нижняя точка первой буквы текста н.
Кроме того, мы установили новый шрифт "Serif" большего размера – 30 пунктов, полужирный, курсив. Всякий шрифт – объект класса Font, а задается он методом setFont () класса Graphics.
Работу со шрифтами мы рассмотрим в следующей главе.
В листинге 8.3, для разнообразия, мы вынесли вызовы методов установки размеров окна, вывода его на экран и завершения программы в метод main ().
Как вы видите из этого простого примера, библиотека AWT большая и разветвленная, в ней множество классов, взаимодействующих друг с другом. Рассмотрим иерархию некоторых наиболее часто используемых классов AWT.