|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class GridBagLayout extends Object implements LayoutManager2, Serializable
GridBagLayout class является гибким менеджером по расположению, который выравнивает компоненты вертикально, горизонтально или вдоль их базовой линии, не требуя что компоненты иметь тот же самый размер. Каждый GridBagLayout объект поддерживает динамическую, прямоугольную сетку ячеек, с каждым компонентом, занимающим одну или более ячеек, названных его областью дисплея. Каждый компонент управлял a GridBagLayout связывается с экземпляром GridBagConstraints. Ограничительный объект определяет, где область дисплея компонента должна быть расположена на сетке и как компонент должен быть расположен в пределах его области дисплея. В дополнение к его ограничительному объекту, GridBagLayout также рассматривает минимум каждого компонента и предпочтенные размеры, чтобы определить размер компонента.
Полная ориентация сетки зависит от контейнера ComponentOrientation свойство. Для горизонтали слева направо ориентации, декартова координата (0,0) находится в левом верхнем углу контейнера с x, увеличивающимся направо и y увеличение вниз. Для горизонтали справа налево ориентации, декартова координата (0,0) находится в правом верхнем углу контейнера с x, увеличивающимся налево и y увеличение вниз.
Чтобы использовать расположение сумки сетки эффективно, следует настроить один или больше GridBagConstraints объекты, которые связываются с его компонентами. Вы настраиваете a GridBagConstraints объект, устанавливая один или больше его переменных экземпляра:
GridBagConstraints.gridx, GridBagConstraints.gridy
gridx = 0, gridy = 0. Для горизонтали слева направо расположение, ведущий угол компонента является своим верхним левым. Для горизонтали справа налево расположение, ведущий угол компонента является своим верхним правым. Использовать GridBagConstraints.RELATIVE (значение по умолчанию), чтобы определить, что компонент быть сразу помещенным после (вдоль оси X для gridx или ось Y для gridy) компонент, который был добавлен к контейнеру как раз перед этим компонентом, был добавлен. GridBagConstraints.gridwidth, GridBagConstraints.gridheight
gridwidth) или столбец (для gridheight) в области дисплея компонента. Значение по умолчанию 1. Использовать GridBagConstraints.REMAINDER определить, что область дисплея компонента будет от gridx к последней ячейке в строке (для gridwidth) или от gridy к последней ячейке в столбце (для gridheight). Использовать GridBagConstraints.RELATIVE определить, что область дисплея компонента будет от gridx к рядом с последней ячейкой в ее строке (для gridwidth или от gridy к рядом с последней ячейкой в ее столбце (для gridheight). GridBagConstraints.fill
GridBagConstraints.NONE (значение по умолчанию), GridBagConstraints.HORIZONTAL (сделайте компонент достаточно широким, чтобы заполнить его область дисплея горизонтально, но не изменить его height), GridBagConstraints.VERTICAL (сделайте компонент достаточно высоким, чтобы заполнить его область дисплея вертикально, но не изменить его width), и GridBagConstraints.BOTH (заставьте компонент заполнить свою область дисплея полностью). GridBagConstraints.ipadx, GridBagConstraints.ipady
ipadx пиксели. Точно так же height компонента будет, по крайней мере, минимальный height плюс ipady пиксели. GridBagConstraints.insets
GridBagConstraints.anchor
ComponentOrientation свойство, в то время как абсолютные значения не. Базовые относительные значения вычисляются относительно базовой линии. Допустимые значения:
Абсолютные значения |
Относительные значения ориентации |
Базовые Относительные значения |
|---|---|---|
GridBagConstraints.NORTHGridBagConstraints.SOUTHGridBagConstraints.WESTGridBagConstraints.EASTGridBagConstraints.NORTHWESTGridBagConstraints.NORTHEASTGridBagConstraints.SOUTHWESTGridBagConstraints.SOUTHEASTGridBagConstraints.CENTER (значение по умолчанию) |
GridBagConstraints.PAGE_STARTGridBagConstraints.PAGE_ENDGridBagConstraints.LINE_STARTGridBagConstraints.LINE_ENDGridBagConstraints.FIRST_LINE_STARTGridBagConstraints.FIRST_LINE_ENDGridBagConstraints.LAST_LINE_STARTGridBagConstraints.LAST_LINE_END |
GridBagConstraints.BASELINEGridBagConstraints.BASELINE_LEADINGGridBagConstraints.BASELINE_TRAILINGGridBagConstraints.ABOVE_BASELINEGridBagConstraints.ABOVE_BASELINE_LEADINGGridBagConstraints.ABOVE_BASELINE_TRAILINGGridBagConstraints.BELOW_BASELINEGridBagConstraints.BELOW_BASELINE_LEADINGGridBagConstraints.BELOW_BASELINE_TRAILING |
GridBagConstraints.weightx, GridBagConstraints.weighty
weightx) и столбец (weighty), вся компонентная глыба вместе в центре их контейнера. Это то, потому что, когда вес является нулем (значение по умолчанию), GridBagLayout объект помещает любое дополнительное пространство между своей сеткой ячеек и краями контейнера. У каждой строки может быть базовая линия; базовая линия определяется компонентами в той строке, которые имеют допустимую базовую линию и являются выровненные вдоль базовой линии (значение привязки компонента является одним из BASELINE, BASELINE_LEADING или BASELINE_TRAILING). Если ни у одного из компонентов в строке нет допустимой базовой линии, у строки нет базовой линии.
Если компонент охватывает строки, он выровненный любой к базовой линии строки запуска (если базовая линия - изменяет размеры поведения, CONSTANT_ASCENT) или строка конца (если базовая линия - изменяет размеры поведения, CONSTANT_DESCENT). Строку, к которой компонент выровненный, вызывают преобладающей строкой.
Следующие данные показывают базовое расположение и включают компонент, который охватывает строки:
|
CONSTANT_DESCENT и имеет привязку BASELINE. Как базовая линия - изменяют размеры поведения, CONSTANT_DESCENT преобладающая строка для панели является строкой 1. CENTER_OFFSET и привязка BASELINE. Компоненты, расположенные, используя одно из базовых относительных значений, изменяют размеры, по-другому расположено используя абсолютное или относительное значение ориентации. Как компонентное изменение диктуют тем, как базовая линия преобладающей строки изменяется. Базовая линия привязывается на нижней части области дисплея, если у каких-либо компонентов с той же самой преобладающей строкой есть базовая линия - изменяют размеры поведения CONSTANT_DESCENT, иначе базовая линия привязывается на вершине области дисплея. Следующие правила диктуют изменять размеры поведение:
OTHER только изменяются, если базовая линия в измененном размере соответствует в пределах области дисплея. Если базовая линия так, что, она не соответствует в пределах области дисплея, компонент не изменяется. OTHER может только стать столь же высоким как display height - baseline + baseline of component. Следующие данные показывают десять компонентов (все кнопки) управляемый расположением сумки сетки. Рисунок 2 показывает расположение для горизонтали, слева направо контейнер и рисунок 3 показывают расположение для горизонтали, справа налево контейнер.
|
|
| Рисунок 2: Горизонталь, Слева направо | Рисунок 3: Горизонталь, Справа налево |
Каждый из этих десяти компонентов имеет fill поле его связанного GridBagConstraints возразите набору против GridBagConstraints.BOTH. Кроме того, у компонентов есть следующие ограничения не по умолчанию:
weightx = 1.0
weightx = 1.0, gridwidth = GridBagConstraints.REMAINDER
gridwidth = GridBagConstraints.REMAINDER
gridwidth = GridBagConstraints.RELATIVE
gridwidth = GridBagConstraints.REMAINDER
gridheight = 2, weighty = 1.0
gridwidth = GridBagConstraints.REMAINDER
Вот код, который реализует пример, показанный выше:
import java.awt.*;
import java.util.*;
import java.applet.Applet;
public class GridBagEx1 extends Applet {
protected void makebutton(String name,
GridBagLayout gridbag,
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setFont(new Font("SansSerif", Font.PLAIN, 14));
setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button4", gridbag, c);
c.weightx = 0.0; //reset to the default
makebutton("Button5", gridbag, c); //another row
c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
makebutton("Button6", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button7", gridbag, c);
c.gridwidth = 1; //reset to the default
c.gridheight = 2;
c.weighty = 1.0;
makebutton("Button8", gridbag, c);
c.weighty = 0.0; //reset to the default
c.gridwidth = GridBagConstraints.REMAINDER; //end row
c.gridheight = 1; //reset to the default
makebutton("Button9", gridbag, c);
makebutton("Button10", gridbag, c);
setSize(300, 100);
}
public static void main(String args[]) {
Frame f = new Frame("GridBag Layout Example");
GridBagEx1 ex1 = new GridBagEx1();
ex1.init();
f.add("Center", ex1);
f.pack();
f.setSize(f.getPreferredSize());
f.show();
}
}
GridBagConstraints, GridBagLayoutInfo, ComponentOrientation, Сериализированная Форма| Модификатор и Тип | Поле и Описание |
|---|---|
double[] |
columnWeights
Это поле содержит переопределения к весам столбца.
|
int[] |
columnWidths
Это поле содержит переопределения к минимуму столбца width.
|
protected Hashtable<Component,GridBagConstraints> |
comptable
Эта хеш-таблица поддерживает ассоциацию между компонентом и его gridbag ограничениями.
|
protected GridBagConstraints |
defaultConstraints
Это поле содержит gridbag ограничительный экземпляр, содержащий значения по умолчанию, так, если у компонента не будет gridbag ограничений связанными с ним, то компонент будет присвоен копия
defaultConstraints. |
protected GridBagLayoutInfo |
layoutInfo
Это поле содержит информацию о расположении для gridbag.
|
protected static int |
MAXGRIDSIZE
Это поле больше не используется, чтобы зарезервировать массивы и сохраняется для обратной совместимости.
|
protected static int |
MINSIZE
Самая маленькая сетка, которая может быть размечена расположением сумки сетки.
|
protected static int |
PREFERREDSIZE
Привилегированный размер сетки, который может быть размечен расположением сумки сетки.
|
int[] |
rowHeights
Это поле содержит переопределения к высотам минимума строки.
|
double[] |
rowWeights
Это поле содержит переопределения к весам строки.
|
| Конструктор и Описание |
|---|
GridBagLayout()
Создает менеджера по расположению сумки сетки.
|
| Модификатор и Тип | Метод и Описание |
|---|---|
void |
addLayoutComponent(Component comp, Object constraints)
Добавляет указанный компонент к расположению, используя указанное
constraints объект. |
void |
addLayoutComponent(String name, Component comp)
Не имеет никакого эффекта, так как этот менеджер по расположению не использует строку на компонент.
|
protected void |
adjustForGravity(GridBagConstraints constraints, Rectangle r)
Корректирует x, y, width, и поля height к корректным значениям в зависимости от ограничительной геометрии и клавиатур.
|
protected void |
AdjustForGravity(GridBagConstraints constraints, Rectangle r)
Этот метод является устаревшим и предоставляется для назад compatability только; новый код должен вызвать
adjustForGravity вместо этого. |
protected void |
arrangeGrid(Container parent)
Размечает сетку.
|
protected void |
ArrangeGrid(Container parent)
Этот метод является устаревшим и предоставляется для назад compatability только; новый код должен вызвать
arrangeGrid вместо этого. |
GridBagConstraints |
getConstraints(Component comp)
Получает ограничения для указанного компонента.
|
float |
getLayoutAlignmentX(Container parent)
Возвращает выравнивание вдоль оси X.
|
float |
getLayoutAlignmentY(Container parent)
Возвращает выравнивание вдоль оси Y.
|
int[][] |
getLayoutDimensions()
Определяет ширины столбцов и высоты строки для макета полосы.
|
protected GridBagLayoutInfo |
getLayoutInfo(Container parent, int sizeflag)
Заполняет экземпляр
GridBagLayoutInfo для текущей группы управляемых дочерних элементов. |
protected GridBagLayoutInfo |
GetLayoutInfo(Container parent, int sizeflag)
Этот метод является устаревшим и предоставляется для назад compatability только; новый код должен вызвать
getLayoutInfo вместо этого. |
Точка |
getLayoutOrigin()
Определяет источник области расположения, в графическом координатном пространстве целевого контейнера.
|
double[][] |
getLayoutWeights()
Определяет веса столбцов макета полосы и строк.
|
protected Dimension |
getMinSize(Container parent, GridBagLayoutInfo info)
Выясняет минимальный размер ведущего устройства, основанного на информации от
getLayoutInfo. |
protected Dimension |
GetMinSize(Container parent, GridBagLayoutInfo info)
Этот метод является устаревшим и предоставляется для назад compatability только; новый код должен вызвать
getMinSize вместо этого. |
void |
invalidateLayout(Container target)
Лишает законной силы расположение, указывая, что, если менеджер по расположению кэшировал информацию, это должно быть отброшено.
|
void |
layoutContainer(Container parent)
Размечает указанный контейнер, используя это расположение сумки сетки.
|
Точка |
location(int x, int y)
Определяет, которым ячейка в макете полосы содержит точку, определенную
(x, y). |
protected GridBagConstraints |
lookupConstraints(Component comp)
Получает ограничения для указанного компонента.
|
Размерность |
maximumLayoutSize(Container target)
Возвращает максимальные размерности для этого расположения, данного компоненты в указанном целевом контейнере.
|
Размерность |
minimumLayoutSize(Container parent)
Определяет минимальный размер
parent контейнер используя это расположение сумки сетки. |
Размерность |
preferredLayoutSize(Container parent)
Определяет привилегированный размер
parent контейнер используя это расположение сумки сетки. |
void |
removeLayoutComponent(Component comp)
Удаляет указанный компонент из этого расположения.
|
void |
setConstraints(Component comp, GridBagConstraints constraints)
Устанавливает ограничения для указанного компонента в этом расположении.
|
Строка |
toString()
Возвращает строковое представление этой сумки сетки значения расположения.
|
protected static final int MAXGRIDSIZE
protected static final int MINSIZE
protected static final int PREFERREDSIZE
protected Hashtable<Component,GridBagConstraints> comptable
comptable компоненты, и значения являются экземплярами GridBagConstraints.GridBagConstraintsprotected GridBagConstraints defaultConstraints
defaultConstraints.protected GridBagLayoutInfo layoutInfo
layoutInfo null это указывает, что нет никаких компонентов в gridbag или если есть компоненты, они еще не были проверены.getLayoutInfo(Container, int)public int[] columnWidths
null значения применяются к gridbag после того, как все минимальные ширины столбцов были вычислены. Если у columnWidths есть больше элементов чем число столбцов, столбцы добавляются к gridbag, чтобы соответствовать число элементов в columnWidth.getLayoutDimensions()public int[] rowHeights
null значения применяются к gridbag после того, как все минимальные высоты строки были вычислены. Если rowHeights имеет больше элементов, чем число строк, rowa добавляются к gridbag, чтобы соответствовать число элементов в rowHeights.getLayoutDimensions()public double[] columnWeights
null значения применяются к gridbag после того, как все веса столбцов были вычислены. Если columnWeights[i] > вес для столбца i, тогда столбца я присваиваюсь вес в columnWeights[i]. Если columnWeights имеет больше элементов чем число столбцов, избыточные элементы игнорируются - они не заставляют больше столбцов создаваться.public double[] rowWeights
null значения применяются к gridbag после того, как все веса строк были вычислены. Если rowWeights[i] > вес для строки i, тогда строка я присваиваюсь вес в rowWeights[i]. Если rowWeights имеет больше элементов чем число строк, избыточные элементы игнорируются - они не заставляют больше строк создаваться.public GridBagLayout()
public void setConstraints(Component comp, GridBagConstraints constraints)
comp - компонент, который будет измененconstraints - ограничения, которые будут примененыpublic GridBagConstraints getConstraints(Component comp)
GridBagConstraints объект возвращается.comp - компонент, который будет запрошенprotected GridBagConstraints lookupConstraints(Component comp)
GridBagConstraints объект используется механизмом расположения. Если comp не находится в GridBagLayout, ряд значения по умолчанию GridBagConstraints возвращаются. A comp значение null недопустимо и возвраты null.
comp - компонент, который будет запрошенpublic Point getLayoutOrigin()
ComponentOrientation значение контейнера. Это отлично от начала координат сетки, данного координатами ячейки (0,0). Большинство приложений не вызывает этот метод непосредственно.ComponentOrientationpublic int[][] getLayoutDimensions()
Большинство приложений не вызывает этот метод непосредственно.
public double[][] getLayoutWeights()
Большинство приложений не вызывает этот метод непосредственно.
public Point location(int x, int y)
(x, y). Каждая ячейка идентифицируется ее столбцом, индексируют (в пределах от 0 к числу столбцов минус 1), и ее строка индексируют (в пределах от 0 к числу строк минус 1). Если (x, y) точка находится вне сетки, следующие правила используются. Столбец индексирует, возвращается как нуль если x находится налево от расположения для слева направо контейнер или направо от расположения для справа налево контейнер. Столбец индексирует, возвращается как число столбцов если x находится направо от расположения в слева направо контейнер или налево в справа налево контейнер. Строка индексирует, возвращается как нуль если y находится выше расположения, и как число строк если y находится ниже расположения. Ориентация контейнера определяется ComponentOrientation свойство.
x - x координата точкиy - y координата точкиComponentOrientationpublic void addLayoutComponent(String name, Component comp)
addLayoutComponent в интерфейсе LayoutManagername - строка, которая будет связана с компонентомcomp - компонент, который будет добавленpublic void addLayoutComponent(Component comp, Object constraints)
constraints объект. Отметьте, что ограничения изменчивы и, поэтому, клонируются когда кэширующийся.addLayoutComponent в интерфейсе LayoutManager2comp - компонент, который будет добавленconstraints - объект, который определяет, как компонент добавляется к расположениюIllegalArgumentException - если constraints не a GridBagConstraintpublic void removeLayoutComponent(Component comp)
Большинство приложений не вызывает этот метод непосредственно.
removeLayoutComponent в интерфейсе LayoutManagercomp - компонент, который будет удален.Container.remove(java.awt.Component), Container.removeAll()public Dimension preferredLayoutSize(Container parent)
parent контейнер используя это расположение сумки сетки. Большинство приложений не вызывает этот метод непосредственно.
preferredLayoutSize в интерфейсе LayoutManagerparent - контейнер, в котором можно сделать расположениеparent контейнерContainer.getPreferredSize()public Dimension minimumLayoutSize(Container parent)
parent контейнер используя это расположение сумки сетки. Большинство приложений не вызывает этот метод непосредственно.
minimumLayoutSize в интерфейсе LayoutManagerparent - контейнер, в котором можно сделать расположениеparent контейнерContainer.doLayout()public Dimension maximumLayoutSize(Container target)
maximumLayoutSize в интерфейсе LayoutManager2target - контейнер, который должен быть размеченContainer, minimumLayoutSize(Container), preferredLayoutSize(Container)public float getLayoutAlignmentX(Container parent)
getLayoutAlignmentX в интерфейсе LayoutManager20.5f указать центрируемыйpublic float getLayoutAlignmentY(Container parent)
getLayoutAlignmentY в интерфейсе LayoutManager20.5f указать центрируемыйpublic void invalidateLayout(Container target)
invalidateLayout в интерфейсе LayoutManager2public void layoutContainer(Container parent)
GridBagLayout объект. Большинство приложений не вызывает этот метод непосредственно.
layoutContainer в интерфейсе LayoutManagerparent - контейнер, в котором можно сделать расположениеContainer, Container.doLayout()public String toString()
protected GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag)
GridBagLayoutInfo для текущей группы управляемых дочерних элементов. Это требует три, проходит через группу дочерних элементов: Этот метод должен только использоваться внутренне GridBagLayout.
parent - контейнер расположенияsizeflag - также PREFERREDSIZE или MINSIZEGridBagLayoutInfo для группы дочерних элементовprotected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)
getLayoutInfo вместо этого. Этот метод является тем же самым как getLayoutInfo; обратитесь к getLayoutInfo для деталей о параметрах и возвращаемом значении.protected void adjustForGravity(GridBagConstraints constraints, Rectangle r)
GridBagLayout.constraints - ограничения, которые будут примененыr - Rectangle быть скорректированнымprotected void AdjustForGravity(GridBagConstraints constraints, Rectangle r)
adjustForGravity вместо этого. Этот метод является тем же самым как adjustForGravity; обратитесь к adjustForGravity для деталей о параметрах.protected Dimension getMinSize(Container parent, GridBagLayoutInfo info)
getLayoutInfo. Этот метод должен только использоваться внутренне GridBagLayout.parent - контейнер расположенияinfo - информация расположения для этого родителяDimension объект, содержащий минимальный размерprotected Dimension GetMinSize(Container parent, GridBagLayoutInfo info)
getMinSize вместо этого. Этот метод является тем же самым как getMinSize; обратитесь к getMinSize для деталей о параметрах и возвращаемом значении.protected void arrangeGrid(Container parent)
GridBagLayout.parent - контейнер расположенияprotected void ArrangeGrid(Container parent)
arrangeGrid вместо этого. Этот метод является тем же самым как arrangeGrid; обратитесь к arrangeGrid для деталей о параметре.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92