Основы программирования на Java - страница 31

Шрифт
Интервал

стр.

>import java.awt.*;

>import j ava. applet. *;

>import java.util.*;

>public class FlowLayoutDemo extends Applet {

>public void init() {

>setLayout(new FlowLayout(FlowLayout.RIGHT, 10,3));

>int width = Integer.parseInt(getParanieter(,,width"));

>int height = Integer.parseInt(getParameter("height"));

>String val = "Разложим это предложение по словам";

>StringTokenizer st = new StringTokenizer(val);

>while (st.hasMoreTokens()) {

>add(new Button(st.nextToken()));

>}

>}

>}

12.13.3. Стратегия BorderLayout

Класс BorderLayout реализует обычный стиль размещения для окон верхнего уровня, в котором предусмотрено четыре узких компонента фиксированной ширины по краям и одна большая область в центре, которая может расширяться и сужаться в двух направлениях, занимая все свободное пространство окна. У каждой из этих областей есть строки-имена: String.North, String. South, String.East и String.West соответствуют четырем краям, a Center — центральной области. Ниже приведен пример BorderLayout с компонентом в каждой из названных областей.

>import java.awt.*;

>import j ava.applet. *;

>import java.util.*;

>public class BorderLayoutDemo extends Applet

>{

>public void init() {

>setLayout(new BorderLayout());

>int width = Integer.parseInt(getParameter("width"));

>int height = Integer.parseInt(getParameter("height"));

>add("North", new Button("Вверху"));

>add(" South", new Label("Внизу"));

>add("East", new Button("Слева"));

>add("West", new Button ("Справа"));

>String msg = "Пример показывает " +

>          "как компоненты размещаются\n" +

>           "по сторонам света.\n\n";

>add("Center", new TextArea(msg));

>}}

12.13.4. Стратегия GridLayout

Класс GridLayout размещает компоненты в простой равномерной сетке. Конструктор этого класса позволяет задавать количество строк и столбцов. Ниже приведен пример, в котором GridLayout используется для создания сетки 4x4, 15 квадратов из 16 заполняются кнопками, помеченными соответствующими индексами. Как вы уже, наверное, поняли, это панель для игры в «пятнашки».

>import j ava.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++) {

>intk = i * n + j;

>if (k > 0)

>add(new Button("" + k));

>}

>}

>}

12.14. Программирование окон - Window

Класс Window во многом напоминает Panel за тем исключением, что он создает свое собственное окно верхнего уровня. В основном используется не непосредственно класс Window, а его подкласс Frame. Frame — это как раз то, что обычно и считают окном на рабочей поверхности экрана. У объекта Frame есть строка с заголовком, управляющие элементы для изменения размера и линейка меню. Для того чтобы вывести (спрятать) изображение объекта Frame, нужно использовать методы show и hide. Ниже приведен пример апплета, который показывает объект Frame с содержащимся в нем компонентом TextArea.


>import java.awt. *;

>import java.applet.*;

>public class FrameDemo extends Applet {

>public void init() {

>int width = lnteger.parseInt(getParameter("width"));

>int height = Integer.parseInt(getParameter("height"));

>String val = "Это учебное пособие " + "предназначено для ознакомления\n"

>           + "с основами программирования на \n"

>        + "объектно-ориентированном языке Java.\n\n";

>TextArea text = new TextArea(val, 80,40);

>Frame f = new Frame("Demo Frame");

>f.setSize(width, height);

>f.add("Center", text);

>f.show();

>}

>}


12.15. Программирование меню

С каждым окном верхнего уровня может быть связана линейка меню. Объект MenuBar может включать в себя несколько объектов Menu. Последние, в свою очередь, содержат в себе список вариантов выбора — объектов MenuItem. Menu — подкласс MenuItem, так что объекты Menu также могут включаться в этот список, что позволяет создавать иерархически вложенные подменю. Вот пример, в котором к окну добавлены несколько вложенных меню.


>import java.awt.*;

>import java.applet. *;

>public class MenuDemo extends Applet


стр.

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