вівторок, 19 червня 2012 р.

Мітки Java

Мітка (JLabel) – це рядок тексту або зображення, що розміщується в компоненті. Це один з найпростіших компонентів графічного інтерфейсу. Вони дозволяють задавати вирівнювання тексту (вправо, зліва, по-центру) в середині компонента та не мають особливих подій, які б асоціювалися з ними. Наступний код демонструє різноманітні способи створення міток.
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
 
public class Labels {
    public static void main(String[] args) {
     LabelFrame frame = new LabelFrame();
     frame.setSize(150, 200);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setVisible(true);
    }
}
 
class LabelFrame extends JFrame{
    //створюємо панель
    JPanel panel=new JPanel();
 
    LabelFrame(){
     // вирівнювання за замовчуванням (CENTER)
    JLabel label1 = new JLabel("Багато левів, ");
    // вирівнювання вліво
    JLabel label2 = new JLabel("тигрів з тигрицями", SwingConstants.LEFT); 
    // мітка без тексту, вирівнювання за замовчуванням
    JLabel label3 = new JLabel(); 
    // створюємо іконку
    Icon icon = new ImageIcon("icon.gif");
    // створюємо мітку із зображенням
    JLabel label4 = new JLabel(icon); 
    // задаємо текст для label3
    label3.setText("і ведмедів");
    // встановлюємо вирівнювання
    label3.setHorizontalAlignment(SwingConstants.RIGHT);
    //додаємо мітки в панель
    panel.add(label1);
    panel.add(label2);
    panel.add(label3);
    panel.add(label4);
    //додаємо панель у фрейм
    this.add(panel);
    }
}
Константи вирівнювання визначені в інтерфейсі SwingConstants. Щоправда вирівнювання тексту відбувається всередині компоненти Label, тому коли компонента підганяється під розмір вмісту, вирівнювання непомітне. Для зміни кольору і шрифту в класі Component існують методи setFont() та setColor(), які застосовуються не тільки для міток, але й для будь-яких компонентів. В тексті мітки можливе також застосування HTML:
JLabel label=new JLabel ("<html>"+ "S<font size=-2>MALL");

Повний варіант книги знаходиться на Вікіпідручнику