Набор абстракций для работы с окнами - часть 12
add("West", new Button("Right"));
String msg = "The reasonable man adapts " +
"himself to the world;\n" +
"the unreasonable one persists in " +
"trying to adapt the world to himself.\n" +
"Therefore all progress depends " +
"on the unreasonable rnan.\n\n" +
“George Bernard Shaw\n\n";
add("Center", new TextArea(msg));
} }
Опять читаем фразу со смыслом (спасибо Бернарду Шоу) – BorderLayoutDemo.html.
GridLayout
Класс GridLayout размещает компоненты в простой равномерной сетке. Конструктор этого класса позволяет задавать количество строк и столбцов. Ниже приведен пример, в котором GridLayout используется для создания сетки 4х4, 15 квадратов из 16 заполняются кнопками, помеченными соответствующими индексами. Как вы уже, наверное, поняли, это — панель для игры в “пятнашки”.
/* <applet code = “GridLayoutDemo” width=200 height=200>
</applet>
*/
import java.awt.*;
import java.applet.*;
public class GridLayoutDemo extends Applet {
static final int n = 4;
public void init() {
setLayout(new GridLayout(n, n));
setFont(new Font("Helvetica", Font.BOLD, 24));
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height”));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int k = i * n + j;
if (k > 0)
add(new Button("" + k));
}
}
} }
Если доработать этот пример – получится неплохая игра – GridLayoutDemo.html.
Insets
Класс Insets используется для того, чтобы вставлять в объект Panel границы, напоминающие горизонтальные и вертикальные промежутки между объектами, которые делает диспетчер размещения. Для того, чтобы добиться вставки границ в объект Panel, нужно заместить метод Insets реализацией, возвращающей новый объект Insets с четырьмя целыми значениями, соответствующими ширине верхнего, нижнего, левого и правого краев.
public Insets insets() {