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(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. Рамки с надписями |
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," +