Spec-Zone .ru
спецификации, руководства, описания, API
|
public class GridBagLayout extends Object implements LayoutManager2, Serializable
GridBagLayout
класс является гибким менеджером по расположению, который выравнивает компоненты вертикально, горизонтально или вдоль их базовой линии, не требуя что компоненты иметь тот же самый размер. Каждый 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
(сделайте компонент достаточно широким, чтобы заполнить его область дисплея горизонтально, но не изменить его высоту), GridBagConstraints.VERTICAL
(сделайте компонент достаточно высоким, чтобы заполнить его область дисплея вертикально, но не изменить его ширину), и GridBagConstraints.BOTH
(заставьте компонент заполнить свою область дисплея полностью). GridBagConstraints.ipadx
, GridBagConstraints.ipady
ipadx
пиксели. Точно так же высота компонента будет, по крайней мере, минимальной высотой плюс ipady
пиксели. GridBagConstraints.insets
GridBagConstraints.anchor
ComponentOrientation
свойство, в то время как абсолютные значения не. Базовые относительные значения вычисляются относительно базовой линии. Допустимые значения:
Абсолютные значения |
Относительные значения ориентации |
Базовые Относительные значения |
---|---|---|
GridBagConstraints.NORTH GridBagConstraints.SOUTH GridBagConstraints.WEST GridBagConstraints.EAST GridBagConstraints.NORTHWEST GridBagConstraints.NORTHEAST GridBagConstraints.SOUTHWEST GridBagConstraints.SOUTHEAST GridBagConstraints.CENTER (значение по умолчанию) |
GridBagConstraints.PAGE_START GridBagConstraints.PAGE_END GridBagConstraints.LINE_START GridBagConstraints.LINE_END GridBagConstraints.FIRST_LINE_START GridBagConstraints.FIRST_LINE_END GridBagConstraints.LAST_LINE_START GridBagConstraints.LAST_LINE_END |
GridBagConstraints.BASELINE GridBagConstraints.BASELINE_LEADING GridBagConstraints.BASELINE_TRAILING GridBagConstraints.ABOVE_BASELINE GridBagConstraints.ABOVE_BASELINE_LEADING GridBagConstraints.ABOVE_BASELINE_TRAILING GridBagConstraints.BELOW_BASELINE GridBagConstraints.BELOW_BASELINE_LEADING GridBagConstraints.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
Это поле содержит переопределения к ширине минимума столбца.
|
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, ширину, и поля высоты к корректным значениям в зависимости от ограничительной геометрии и клавиатур.
|
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
.GridBagConstraints
protected 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). Большинство приложений не вызывает этот метод непосредственно.ComponentOrientation
public 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 координата точкиComponentOrientation
public void addLayoutComponent(String name, Component comp)
addLayoutComponent
в интерфейсе LayoutManager
name
- строка, которая будет связана с компонентомcomp
- компонент, который будет добавленpublic void addLayoutComponent(Component comp, Object constraints)
constraints
объект. Отметьте, что ограничения изменчивы и, поэтому, клонируются когда кэширующийся.addLayoutComponent
в интерфейсе LayoutManager2
comp
- компонент, который будет добавленconstraints
- объект, который определяет, как компонент добавляется к расположениюIllegalArgumentException
- если constraints
не a GridBagConstraint
public void removeLayoutComponent(Component comp)
Большинство приложений не вызывает этот метод непосредственно.
removeLayoutComponent
в интерфейсе LayoutManager
comp
- компонент, который будет удален.Container.remove(java.awt.Component)
, Container.removeAll()
public Dimension preferredLayoutSize(Container parent)
parent
контейнер используя это расположение сумки сетки. Большинство приложений не вызывает этот метод непосредственно.
preferredLayoutSize
в интерфейсе LayoutManager
parent
- контейнер, в котором можно сделать расположениеparent
контейнерContainer.getPreferredSize()
public Dimension minimumLayoutSize(Container parent)
parent
контейнер используя это расположение сумки сетки. Большинство приложений не вызывает этот метод непосредственно.
minimumLayoutSize
в интерфейсе LayoutManager
parent
- контейнер, в котором можно сделать расположениеparent
контейнерContainer.doLayout()
public Dimension maximumLayoutSize(Container target)
maximumLayoutSize
в интерфейсе LayoutManager2
target
- контейнер, который должен быть размеченContainer
, minimumLayoutSize(Container)
, preferredLayoutSize(Container)
public float getLayoutAlignmentX(Container parent)
getLayoutAlignmentX
в интерфейсе LayoutManager2
0.5f
указать центрируемыйpublic float getLayoutAlignmentY(Container parent)
getLayoutAlignmentY
в интерфейсе LayoutManager2
0.5f
указать центрируемыйpublic void invalidateLayout(Container target)
invalidateLayout
в интерфейсе LayoutManager2
public void layoutContainer(Container parent)
GridBagLayout
объект. Большинство приложений не вызывает этот метод непосредственно.
layoutContainer
в интерфейсе LayoutManager
parent
- контейнер, в котором можно сделать расположениеContainer
, Container.doLayout()
public String toString()
protected GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag)
GridBagLayoutInfo
для текущего набора управляемых дочерних элементов. Это требует три, проходит через набор дочерних элементов: Этот метод должен только использоваться внутренне GridBagLayout
.
parent
- контейнер расположенияsizeflag
- также PREFERREDSIZE
или MINSIZE
GridBagLayoutInfo
для набора дочерних элементов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 и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.