Листинг 16.2. Рамки с изображениями и разной толщины I

import java.awt.*; import javax.swing.*; import javax.swing.border.*;

public class MatBorders extends JFrame{

MatBorders(){

super(" Рамки с изображениями и разной толщины"); setLayout(new FlowLayout());

JLabel l1 = new JLabel(" MatteBorder(Icon) ");

11. setBorder(new MatteBorder(new ImageIcon("about16.gif")));

JLabel l2 = new JLabel(" MatteBorder(3,6,3,6, Color.red) ");

12. setBorder(BorderFactory.createMatteBorder(3,6,3,6, Color.red));

add(l1); add(l2);

setSize(400, 400);

setDefaultCloseOperation(EXIT ON CLOSE); setVisible(true);

}

public static void main(String[] args){ new MatBorders();

}

}

Рамки с надписями TitledBorder

Класс TitledBorder позволяет создать рамку с надписью. В простейшем случае конструктор TitledBorder(String) или статический метод createTitledBorder(String) класса BorderFactory создает простую рамку толщиной в один пиксел, в которую слева сверху вставлена строка. Это показано на рис. 16.3, сверху.

Надпись можно вставить в рамку любого типа. Для этого используется конструктор

TitledBorder(Border, String);

или статический метод

createTitledBorder(Border, String);

На рис. 16.3 во второй строке надпись вставлена в рамку класса EtchedBorder.

Надпись можно вставить в верхнюю границу рамки, top, написать выше верхней границы, above_top, или ниже верхней границы, below_top. То же самое можно сделать снизу: bottom, above_bottom, below_bottom. Эти константы — параметр pos в конструкторах и методах, описанных далее.

По умолчанию надпись располагается слева, left, но ее можно расположить по центру, center, или справа, right. Эти константы — параметр just в конструкторах и методах, описанных далее.

Все константы, определяющие место надписи, перечислены в листинге 16.5.

Все восемнадцать возможностей реализуются конструктором

TitledBorder(Border, String, int just, int pos);

или статическим методом

createTitledBorder(Border, String, int just, int pos);

Некоторые из этих возможностей показаны на рис. 16.3.

Кроме различного расположения надписи, для нее можно задать шрифт конструктором

TitledBorder(Border, String, int just, int pos, Font);

или статическим методом

createTitledBorder(Border, String, int just, int pos, Font);

Наконец, кроме расположения и шрифта можно определить еще и цвет надписи конструкторомTitledBorder(Border, String, int just, int pos, Font, Color); или статическим методом класса BorderFactorycreateTitledBorder(Border, String, int just, int pos, Font, Color);
Рис. 16.3. Рамки с надписями
Листинг 16.3 содержит программу, создавшую рис. 16.3. В ней приведены все описанные возможности создания рамок с надписями.Листинг 16.3. Рамки с надписями

import java.awt.*; import javax.swing.*; import javax.swing.border.*;

public class TitBorders extends JFrame{

TitBorders(){

super(" Рамки с надписями"); setLayout(new FlowLayout());

JLabel l1 = new JLabel(" TitledBorder(String) "); l1.setBorder(new TitledBorder("Надпись"));

JLabel l2 = new JLabel(

" TitledBorder(new EtchedBorder(),\"Надпись\") ");

12. setBorder(BorderFactory.createTitledBorder(

BorderFactory.createEtchedBorder(), "Надпись"));

JLabel l3 = new JLabel(

" Расположение CENTER," +

Перейти на страницу:

Все книги серии В подлиннике

Похожие книги