Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_39073359
jadx
提交
1462acbb
J
jadx
项目概览
qq_39073359
/
jadx
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jadx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1462acbb
编写于
4月 18, 2021
作者:
S
Skylot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: remove not needed file
上级
c52c659b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
190 deletion
+0
-190
WrapLayout.java
WrapLayout.java
+0
-190
未找到文件。
WrapLayout.java
已删除
100644 → 0
浏览文件 @
c52c659b
import
java.awt.*
;
import
javax.swing.JScrollPane
;
import
javax.swing.SwingUtilities
;
/**
* FlowLayout subclass that fully supports wrapping of components.
*/
public
class
WrapLayout
extends
FlowLayout
{
private
Dimension
preferredLayoutSize
;
/**
* Constructs a new <code>WrapLayout</code> with a left
* alignment and a default 5-unit horizontal and vertical gap.
*/
public
WrapLayout
()
{
super
();
}
/**
* Constructs a new <code>FlowLayout</code> with the specified
* alignment and a default 5-unit horizontal and vertical gap.
* The value of the alignment argument must be one of
* <code>WrapLayout</code>, <code>WrapLayout</code>,
* or <code>WrapLayout</code>.
* @param align the alignment value
*/
public
WrapLayout
(
int
align
)
{
super
(
align
);
}
/**
* Creates a new flow layout manager with the indicated alignment
* and the indicated horizontal and vertical gaps.
* <p>
* The value of the alignment argument must be one of
* <code>WrapLayout</code>, <code>WrapLayout</code>,
* or <code>WrapLayout</code>.
* @param align the alignment value
* @param hgap the horizontal gap between components
* @param vgap the vertical gap between components
*/
public
WrapLayout
(
int
align
,
int
hgap
,
int
vgap
)
{
super
(
align
,
hgap
,
vgap
);
}
/**
* Returns the preferred dimensions for this layout given the
* <i>visible</i> components in the specified target container.
* @param target the component which needs to be laid out
* @return the preferred dimensions to lay out the
* subcomponents of the specified container
*/
@Override
public
Dimension
preferredLayoutSize
(
Container
target
)
{
return
layoutSize
(
target
,
true
);
}
/**
* Returns the minimum dimensions needed to layout the <i>visible</i>
* components contained in the specified target container.
* @param target the component which needs to be laid out
* @return the minimum dimensions to lay out the
* subcomponents of the specified container
*/
@Override
public
Dimension
minimumLayoutSize
(
Container
target
)
{
Dimension
minimum
=
layoutSize
(
target
,
false
);
minimum
.
width
-=
(
getHgap
()
+
1
);
return
minimum
;
}
/**
* Returns the minimum or preferred dimension needed to layout the target
* container.
*
* @param target target to get layout size for
* @param preferred should preferred size be calculated
* @return the dimension to layout the target container
*/
private
Dimension
layoutSize
(
Container
target
,
boolean
preferred
)
{
synchronized
(
target
.
getTreeLock
())
{
// Each row must fit with the width allocated to the containter.
// When the container width = 0, the preferred width of the container
// has not yet been calculated so lets ask for the maximum.
int
targetWidth
=
target
.
getSize
().
width
;
Container
container
=
target
;
while
(
container
.
getSize
().
width
==
0
&&
container
.
getParent
()
!=
null
)
{
container
=
container
.
getParent
();
}
targetWidth
=
container
.
getSize
().
width
;
if
(
targetWidth
==
0
)
targetWidth
=
Integer
.
MAX_VALUE
;
int
hgap
=
getHgap
();
int
vgap
=
getVgap
();
Insets
insets
=
target
.
getInsets
();
int
horizontalInsetsAndGap
=
insets
.
left
+
insets
.
right
+
(
hgap
*
2
);
int
maxWidth
=
targetWidth
-
horizontalInsetsAndGap
;
// Fit components into the allowed width
Dimension
dim
=
new
Dimension
(
0
,
0
);
int
rowWidth
=
0
;
int
rowHeight
=
0
;
int
nmembers
=
target
.
getComponentCount
();
for
(
int
i
=
0
;
i
<
nmembers
;
i
++)
{
Component
m
=
target
.
getComponent
(
i
);
if
(
m
.
isVisible
())
{
Dimension
d
=
preferred
?
m
.
getPreferredSize
()
:
m
.
getMinimumSize
();
// Can't add the component to current row. Start a new row.
if
(
rowWidth
+
d
.
width
>
maxWidth
)
{
addRow
(
dim
,
rowWidth
,
rowHeight
);
rowWidth
=
0
;
rowHeight
=
0
;
}
// Add a horizontal gap for all components after the first
if
(
rowWidth
!=
0
)
{
rowWidth
+=
hgap
;
}
rowWidth
+=
d
.
width
;
rowHeight
=
Math
.
max
(
rowHeight
,
d
.
height
);
}
}
addRow
(
dim
,
rowWidth
,
rowHeight
);
dim
.
width
+=
horizontalInsetsAndGap
;
dim
.
height
+=
insets
.
top
+
insets
.
bottom
+
vgap
*
2
;
// When using a scroll pane or the DecoratedLookAndFeel we need to
// make sure the preferred size is less than the size of the
// target containter so shrinking the container size works
// correctly. Removing the horizontal gap is an easy way to do this.
Container
scrollPane
=
SwingUtilities
.
getAncestorOfClass
(
JScrollPane
.
class
,
target
);
if
(
scrollPane
!=
null
&&
target
.
isValid
())
{
dim
.
width
-=
(
hgap
+
1
);
}
return
dim
;
}
}
/*
* A new row has been completed. Use the dimensions of this row
* to update the preferred size for the container.
*
* @param dim update the width and height when appropriate
* @param rowWidth the width of the row to add
* @param rowHeight the height of the row to add
*/
private
void
addRow
(
Dimension
dim
,
int
rowWidth
,
int
rowHeight
)
{
dim
.
width
=
Math
.
max
(
dim
.
width
,
rowWidth
);
if
(
dim
.
height
>
0
)
{
dim
.
height
+=
getVgap
();
}
dim
.
height
+=
rowHeight
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录