Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Заочники 2020-2021 / Билеты.docx
Скачиваний:
71
Добавлен:
15.06.2021
Размер:
1.2 Mб
Скачать

Gui Swing. Работа с компоновщиком GridBagLayout

Так же как и рассмотренный нами ранее режим GridLayout, режим GridBagLayout предполагает размещение компонент в ячейках некоторой таблицы заданной размерности. Вот наиболее важные отличия между этими режимами:

  • в режиме GridLayout размещаемые компоненты изменяют свои размеры таким образом, чтобы заполнить ячейки таблицы, в которых они располагаются. Режим GridBagLayout позволяет контролировать этот процесс, причем при необходимости вы можете задать стратегию такого изменения или отменить его вовсе;

  • в режиме GridLayout каждый компонент занимает только одну ячейку. Что же касается режима GridBagLayout, то здесь компоненты могут занимать несколько смежных ячеек в строках или столбцах;

  • при изменении размеров контейнера во время работы приложения при использовании режима GridLayout все компоненты неизбежно также будут изменять свои размеры. Это далеко не всегда удобно. В режиме GridBagLayout вы можете управлять стратегией изменения размеров компонент или отменить такое изменение.

Билет 17.

Обобщения. Ограниченные шаблоны.

Поскольку методы могут принимать в качестве аргументов объекты классов, возникает вопрос — «Что делать, если в метод передается объект обобщенного класса?». Для этого применяется конструкция «шаблон аргумента».

Типы в шаблоне аргумента можно также ограничивать, задавая конкретный тип,

Классу и подклассам которого должет соответствовать тип, подставляемый в шаблон аргумента.

//Метод будет работать только с объектом обобщенного

Класса Number и его подклассами

public Double getMax(InClass<? Extends Number> ic) {

...

}

Можно использовать для ограничения и пользовательские классы

class A{}

class B extends A{}

class D{}

class C<T> {

T obj;

C(T obj) { this.obj = obj; }

public void test(C<? extends A> obj) { ... }

}

A a = new A(); B b = new B(); D d = new D();

C<A> c1 = new C<A>(a);

C<B> c2 = new C<B>(b);

C<D> c3 = new C<D>(d);

c1.test(c1); c1.test(c2);

c2.test(c1); c2.test(c2);

//Будет ошибка

//c3.test(c3); c1.test(c3); c2.test(c3);

GUI Swing. Группировка компонентов.

Группировка осуществляется с помощью панели.

Панель JPanel — это элемент управления, представляющий собой прямоугольное пространство, на котором можно размещать другие элементы. Элементы добавляются и удаляются методами, унаследованными от класса Container.

Билет 18.

Обобщенные конструкторы.

Конструкторы также могут иметь обобщенную форму. Обобщенные конструкторы могут быть определены как в обобщенных, так и в обычных классах.

Объявление обобщенного конструктора имеет следующий порядок:

1. Сначала приводится описание обобщенного типа

2. Затем имя конструктора

3. Затем аргументы обобщенные и обычные

public class TSumm {

private Double summ;

<T extends Float> TSumm(T[] mass) {

System.out.println("Вещественное одинарной точности");

this.summ = this.checkSumm(mass);

}

<T extends Integer> TSumm(T[] mass) {

System.out.println("Целое");

this.summ = this.checkSumm(mass);

}

private <T extends Number> Double checkSumm(T[] mass) {

Double summ = 0D;

for(T temp: mass) {

summ += temp.doubleValue();

}

return summ;

}

public Double getSumm() {

return this.summ;

}

}

Соседние файлы в папке Заочники 2020-2021