- •Лекция 5. Графический пользовательский интерфейс
- •5.1. Библиотека Swing
- •5.1.1. Библиотеки для создания графического интерфейса
- •5.1.2. Анонимные вложенные классы
- •5.1.3. Интерфейс Runnable
- •5.1.4. Использование библиотеки Swing
- •5.2. Окна верхнего уровня
- •5.2.1. Класс jFrame
- •5.3. Рисование в окне
- •5.3.1. Особенности рисования в классах ComponentиJComponent
- •5.3.2. Вычисление области рисования
- •5.3.3. Класс Graphics
- •5.3.4. Класс Color.
- •5.3.5. Класс Font.
- •5.4. Скроллинг.
- •5.4.1. Класс jScrollPane.
5.3.5. Класс Font.
import java.awt.*;
import javax.swing.*;
public class ForegroundWindow extends JFrame {
public class DrawingPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setFont(new Font("Times New Roman", Font.BOLD, 12));
g.drawString("Times New Roman", 20, 50);
g.setFont(new Font("Courier New", Font.ITALIC, 16));
g.drawString("Courier New", 20, 100);
g.setFont(new Font("Arial Black", Font.ITALIC, 10));
g.drawString("Arial Black", 20, 150);
g.setFont(new Font("Tahoma", Font.PLAIN, 20));
g.drawString("Tahoma", 20, 200);
g.setFont(new Font("Sans Serif",
Font.ITALIC & Font.BOLD, 14));
g.drawString("Sans Serif", 20, 250);
}
}
public ForegroundWindow() {
super("Пример окна верхнего уровня");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
add(new DrawingPanel());
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new ForegroundWindow().setVisible(true);
}
});
}
}

5.4. Скроллинг.
5.4.1. Класс jScrollPane.
import java.awt.*;
import javax.swing.*;
public class ForegroundWindow extends JFrame {
public class DrawingPanel extends JPanel {
public DrawingPanel() {
setPreferredSize(new Dimension(400, 400));
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
for(int i = 1; i < 10; i++)
for(int j = 1; j < 10; j++) {
g.drawString(String.valueOf(i*j), i*40, j*40);
}
}
}
public ForegroundWindow() {
super("Пример окна верхнего уровня");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
add(new JScrollPane(new DrawingPanel()));
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new ForegroundWindow().setVisible(true);
}
});
}
}

