На заметку:
При определении координат чего-нибудь в чем-нибудь используется система координат, с началом в верхнем левом углу и координатными осями: горизонтальная направлена слева направо, а вертикальная направлена сверху вниз. Например, инструкция frm. setBounds (4 00, 300, 180, 100) означает, что окно отображается на экране на расстоянии 4 00 пикселей от левого края, на расстоянии 300 пикселей сверху, ширина окна 180 пикселей и его высота составляет 100 пикселей.
Реакцию на закрытие окна через системную пиктограмму определяем командой frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE). Метка создается командой JLabel lbl=new JLabel(" Всем огромный привет! "). Здесь создается объекты класса JLabel. Аргументом конструктору класса JLabe1 передается текстовое значение " Всем огромный привет!", которое становится текстовым содержимым метки, которое меткой и отображается. Но само по себе создание метки не означает, что эта метка где-то появится. Чтобы она появилась не просто где-то, а в окне, используем команду frm.add(lbl). Наконец, окно (вместе с меткой) отображается командой frm.setvisible(true).
На заметку:
Практически все контейнеры (то есть объекты, которые могут содержать другие компоненты) имеют метод add () для добавления компонентов. Метод вызывается из того объекта, в который компонент добавляется, а аргументом методу передается добавляемый компонент (его объект).
Все, что осталось, — создать объект класса MyFrame. Это делаем в главном методе программы с помощью команды new MyFrame (), которой создаем анонимный объект класса.
Окно с текстом и пиктограммой
Усложняем (незначительно) пример, добавив в окно не просто текстовую метку, а метку с пиктограммой. Пример похож на предыдущий, но не совсем. В результате мы увидим окно, представленное на рис. 3.
Рис. 3. Окно с текстом и пиктограммой
Разумеется, исследуем код, который позволяет создать такое замечательное окно. Исследовать будем код, представленный в листинге 3.
Листинг 3. Окно с текстом и пиктограммой
import javax.swing.*;
// Класс для реализации окна с меткой: class, MyFrame {
// Конструктор класса.
// Аргументы конструктора - текст для метки //и координаты окна на экране:
MyFrame(String text, inc x, mt yj i // Создание окна:
JFrame frm=new JFrame(" Окно с меткой"); // Положение окна на экране и размеры: frm.setBounds(х, у, 250,120) ; // Реакция на закрытие окна:
frm.setDefaultCloseOperation(JFrame.EXIT_0N_CL0SE); // Создание пиктограммы: Imagelcon icn=new Imagelcon("d:/Books/Java_guide/pictures/redshd.gif"); // Создание текстовой метки (с пиктограммой): JLabel lbl=new JLabel(text,icn,JLabel.CENTER); // Добавление метки в окно: frm.add(lbl); // Отображение окна: frm.setvisible(true); }
}
public class FrameAndLabel2{
public static void main(String[] args){ // Создание окна (анонимный объект): new MyFrame(" Метка с пиктограммой!",300,400);}
}
Хотя код напоминает тот, что рассматривался в предыдущем примере, но есть изменения. Сосредоточим свое внимание на них.
Во-первых, конструктор класса MyFrame, на основе которого реализуется окно, в данном случае принимает три аргумента: первый аргумент текстовый, а второй и третий - целочисленные. Первый аргумент — это тот текст (переменная text в сигнатуре конструктора), который отображается меткой. Целочисленные аргументы (переменные х и у в сигнатуре конструктора) определяют координаты отображаемого на экране окна. Но, как и ранее, все интересное происходит в конструкторе класса MyFrame. Объект окна создается JFrame frm=new JFrame (" Окно с меткой"), а положение окна на экране и его размеры задаем командой frm. setBounds (х, у, 2 50, 120). Здесь в качестве первых двух аргументов метода setBounds () указаны аргументы, которые передавались конструктору Знакома и команда frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE), определяющая реакцию на закрытие окна.
Существенно новой является команда по созданию пиктограммы. Эта чудесная команда имеет такой вид: Imagelcon icn=new Imagelcon("d:/ Books/Java_guide/pictures/redshd.gif "). Командой создается объект icn класса Imagelcon. Класс Imagelcon расширяет интерфейс Icon. Поэтому объект icn можно указывать там, где по идее должен быть объект класса, расширяющего интерфейс Icon. В частности, объект icn может передаваться аргументом конструктору класса JLabel. Пиктограмма создается на основе изображения, записанного в файл гedshd.gif. Аргументом конструктору класса ImageIcon() передается текстовая строка с полным путем к файлу.
После того, как создана пиктограмма для отображения меткой, создаем метку с помощью команды JLabel lbl=new JLabel (text, icn, JL abel. CENTER). Создается объект lbl класса JLabel (), а аргументами конструктору класса передаются: переменная text (это первый текстовый аргумент класса MyFrame, который содержит текстовое значение, предназначенное для отображения меткой), объект пиктограммы icn, а также статическая константа JLabel. CENTER. Эта константа означает, что текст и пиктограмма в метке выравниваются по центру.
